我正在使用 Laravel 5.6 和 jwt-auth用于 API 身份验证。它背后的想法很简单:
- 您发送带有用户凭据的 HTTP POST 请求,如果成功则获取“access_token”。
- 每个后续请求都应使用 header “Authorization: Bearer {access_token}”发送。
如果消费者来自外部(例如 Android 应用程序),则此步骤很酷且灵活。
但如果 API 消费者是我自己的 JavaScript 呢?即使在我的网络中间件中已经知道经过身份验证的用户,我是否也应该在启动每个异步请求时登录?人们通常如何管理它?
通过 Passport (OAuth2.0),Laravel 提供了一个中间件,它可以注入(inject)带有授权 token 的 cookie,从而使这个过程自动且简单:
Typically, if you want to consume your API from your JavaScript application, you would need to manually send an access token to the application and pass it with each request to your application. However, Passport includes a middleware that can handle this for you. All you need to do is add the
CreateFreshApiToken
middleware to your web middleware group in yourapp/Http/Kernel.php
file:
'web' => [
// Other middleware...
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],
如何使用 JWT (tymondesigns/jwt-auth) 并在不显式传递访问 token 的情况下向我自己的应用程序的 API 发出请求?
最佳答案
如果您想通过基于 Javascript 的网站访问此 API,您需要将此访问 token 保存在本地存储中。然后对于每个请求,将此访问 token 发送到您的 API 以检查此 token 的有效性。
此外,如果您的 API 和基于 Javascript 的网站在同一个域中,只需使用常规方式进行身份验证即可。
关于php - Laravel JWT - 使用 Javascript 使用你自己的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51362253/