1.首先使用composer安裝passportphp
composer require laravel/passport
2.註冊服務提供者laravel
進入config/app.php
中,將下面行添加到providers
數組中web
/* * Package Service Providers... */ Laravel\Passport\PassportServiceProvider::class,
3.在App\User
模型中的use
後面添加HasApiTokens
json
class User extends Authenticatable { use HasApiTokens, Notifiable; }
4.在AuthServiceProvider
的boot
方法中調用api
// 配置passport路由 Passport::routes(); // 或者使用下面這行給URI添加前輟 //Passport::routes(null,['prefix'=>'api/oauth']); // token的有效期時長:2小時 Passport::tokensExpireIn(Carbon::now()->addHour(2)); // refresh token的有效期時長:7天 Passport::refreshTokensExpireIn(Carbon::now()->addDay(7));
5.將config/auth.php
的配置文件的guards
/api
/driver
修改成passport
數組
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
6.在服務器中執行數據填充服務器
php artisan migrate
7.生成密鑰session
php artisan passport:install
執行上述命令會生成相似的密鑰app
Personal access client created successfully. Client ID: 1 Client Secret: Fo6GS5UyNuCIeZtBhIUzA9W99sonUoZNo26Zi67t Password grant client created successfully. Client ID: 2 Client Secret: kCvv28qy25rIw5IYvAwpIHNQvBMnH6FElrzxqvqP
簡單的配置就些完成。composer
打開Postman或者相似的工具
方法爲POST
連接爲http://你的域名/oauth/token,(假如你使用了URI的前輟,則要在你的URI前加上你自定義的那個前輟)
在表單數據中添加如下項
key | value |
---|---|
client_id | 這裏使用的是生成密鑰裏的clientid值 |
client_secret | 這個是上面ID對應的secret |
username | users表裏用於登陸的用戶名,默認爲郵箱,除非你修改過默認值 |
password | 用戶登陸對應的密碼 |
grant_type | password(oauth2有多種類型,我這裏使用密碼驗證類型測試) |
下面附一個演示的數據,不要照抄,只做參考
key | value |
---|---|
client_id | 2 |
client_secret | kCvv28qy25rIw5IYvAwpIHNQvBMnH6FElrzxqvqP |
username | aaa@test.com |
password | 123456 |
grant_type | password |
填好上面內容後,點Send
,服務器返回一個json數據就表示Passport配置成功了
{ "token_type": "Bearer", "expires_in": 7200, "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImUxNGUyZDFmNjUwYzJiMzgwYWVhZjVjNzI5NWFhNjI4ZjM4MjRmOTJhYzNhMmFiY2VkZmQyYmI2OWQ0ZWQ0NjFlOGUwZTI4Njk2NWIzN2ZmIn0.eyJhdWQiOiIyIiwianRpIjoiZTE0ZTJkMWY2NTBjMmIzODBhZWFmNWM3Mjk1YWE2MjhmMzgyNGY5MmFjM2EyYWJjZWRmZDJiYjY5ZDRlZDQ2MWU4ZTBlMjg2OTY1YjM3ZmYiLCJpYXQiOjE1MTAzMzIwNDksIm5iZiI6MTUxMDMzMjA0OSwiZXhwIjoxNTEwMzM5MjQ5LCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.czFKBMcqXWhv6JXD_1bhAn2h0cZ1v4KOZWP8c2UOQ3_Y0-a0w-63Qa4jGOCU01dyB5_9e6eEJeaNpDkxN-iezlJbQ37gMjg_x4GbT-Zy1XuYSfqtRQPd3IO3jnnEtFvVLdcaqG4a5z5I9QEKtSjP8UYFV-gPv4Y-vMg29xPga0cIT9bxHnyTWvfjmUfNw_S6pZ2QAnr4jRJSgGgMksNKeo2qRgmpxOYD5LSPO-ZLYY0QhB6TuPZDmO_1s6L7rMQN4p3rlv36E3eIPw8AuK1aXPy5c2_iN4fzdkKKtsHhm6dl5MjnbomKLbVCnYaqWNOSz5ru2zztnUysBi6J_s4qwW89w0DQahl4sLx1qXx90JHdi057d6L4_AqTbFvBtRY_e5IyKNfG1Q3iZS_8ZMRP2TAEsnCiHO3Mv-RRRzunUAE3nzy-6Uu30yj01_dgowLmcuj6RLElsCfOgDAGmLlHdXzDXn-ECzhZEVSuwRqLYqoDiw95WzOSKteemvsWmUqnoLyaXKu_uAjhLb6eKVSdOIBLFb1z-3XQjIx2FhTGJxDhZShDQ9V3Dx_XdiJO6gsdgBsuJyaxLv-SDrU7SQ3LmZxn854DCYXTblUBXyUfbRtu5CGyI2kaV9DyPMqxrAPEYLmTL6WG1J0foTNAOOwWx6nEuDnq18oVALojqsMaNfM", "refresh_token": "def50200344953b3f39ad35917ff6981ae428f3b48705899e6218149701d7ee3cd419c8297961603444f8ea9174154baa6a04740ee8d2e58403999c92e567f0c5ebdde0ebde6ebc965bc91a1d5c8d012cb7f0b159226e187d5500458c41a6feb4fc9908f9ab9b43f5c9eb82d8e0507fd3db92e6253990acbf9edb6f1b8b3e857c559e23b015af0331ace28d63df4d25e62a8538565e52f38579f6a57582f3446fa2855ff86c7a9ee401671fd70f3a151eb97d1b83abd09612d8d1ccc93c35b64585a051fef2fc971286f135ed5f7e66858c169a2f05192c85458557c5dd2d21b015b43a3d409914cc9e4f719abb8e9376d88d4cee295a25a32bed45f60ddba6f3679980a40604ac563601442e549557cc3d0c2e9b8c722b414b87875180472d66675b1902124a7502123eb2feee87131243eb06c1ea72c11c8ff5b7c65f35544a9e35bde1fe74c99ec6cb1d16a4ec68fec046f3637737ef18f5998b9368c5190f7" }