Laravel Passport:在没有用户名/密码的情况下验证承载令牌

时间:2018-10-20 05:49:02

标签: laravel laravel-5 oauth-2.0 laravel-passport laravel-5.7

我尝试授权第一方移动应用访问我的API(无用户名/密码)。所以我所做的是(如果我输入错了,请纠正我):从我的移动应用程序中:我请求具有Grant_type的令牌:client_credentials:

POST:http://my.url/api/oauth/token

{
    "grant_type": "client_credentials",
    "client_id": 8,
    "client_secret": "XXNKXXqJjfzG8XXSvXX1Q4pxxnkXmp8tT8TXXKXX",
    "redirect_uri": "",
    "scope": "*"
}

然后我得到了答复:

{
    "token_type": "Bearer",
    "expires_in": 31536000,
    "access_token": "someverylongrandomtokentext.anotherRandomcharacterhere"
}

那么将来,我的移动应用将在下面使用我的API:

Authorization: Bearer someverylongrandomtokentext.anotherRandomcharacterhere
Accept:application/json
Content-Type:application/json

护照具有:Route::group(['middleware' => 'auth:api'], function() )用于保护API,但是根据我的理解,该API将使用用户名和密码(在我的情况下,我没有)进行验证。因此,看来我必须构建自己的自定义中间件来保护基于承载令牌的路由。

问题:

  1. 如何验证给定的承载令牌?
  2. 您知道auth:api中间件代码在哪里吗?
  3. 我意识到令牌已过期,那么刷新令牌在哪里?

**只是一个背景,如果您想知道为什么没有用户名/密码:因为这是我的移动应用访问我的API的第一步,所以我需要确保这确实是我的应用,然后,我将使用社交登录以获取用户。

0 个答案:

没有答案