我正在使用带有jwt-auth的Laravel 5.6进行API身份验证。背后的想法很简单:
如果使用者来自外部(例如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,
],
如何使用JWT(tymondesigns / jwt-auth)并向我自己的应用程序的API发出请求,而无需显式传递访问令牌?
答案 0 :(得分:0)
如果您想通过基于Javascript的网站访问此API,则需要将此访问令牌保存在本地存储中。然后针对每个请求,将此访问令牌发送到您的API,以检查此令牌的有效性。
此外,如果您的API和基于Javascript的网站位于同一域中,则只需使用常规方式进行身份验证即可。