Laravel JWT-使用Javascript消费自己的API

时间:2018-07-16 12:49:46

标签: php laravel jwt

我正在使用带有jwt-auth的Laravel 5.6进行API身份验证。背后的想法很简单:

  1. 您发送带有用户凭据的HTTP POST请求,如果成功,则获得“ access_token”。
  2. 每个后续请求都应发送标头“授权:承载{access_token}”。

如果使用者来自外部(例如Android App),则此步骤很酷且灵活。

但是,如果API使用者是我自己的JavaScript?即使已经知道Web中间件中已通过身份验证的用户,在启动每个异步请求时也应该登录吗?人们通常如何管理这个问题?

借助Passport(OAuth2.0),Laravel提供了一种中间件,该中间件注入具有授权令牌的cookie,从而使该过程变得自动且容易:

  

通常,如果要使用JavaScript应用程序中的API,则需要手动向应用程序发送访问令牌,并将其与每个请求一起传递给应用程序。但是,Passport包含可以为您处理此问题的中间件。您需要做的就是将CreateFreshApiToken中间件添加到app/Http/Kernel.php文件中的Web中间件组中:

'web' => [
    // Other middleware...
    \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],

Read more

如何使用JWT(tymondesigns / jwt-auth)并向我自己的应用程序的API发出请求,而无需显式传递访问令牌?

1 个答案:

答案 0 :(得分:0)

如果您想通过基于Javascript的网站访问此API,则需要将此访问令牌保存在本地存储中。然后针对每个请求,将此访问令牌发送到您的API,以检查此令牌的有效性。

此外,如果您的API和基于Javascript的网站位于同一域中,则只需使用常规方式进行身份验证即可。

相关问题