gpt4 book ai didi

Laravel 护照 - CreateFreshApiToken 没有 laravel_token cookie

转载 作者:行者123 更新时间:2023-12-04 22:56:11 26 4
gpt4 key购买 nike

CreateFreshApiToken,一旦添加到 Kernel.php 中的“web”中间件组,应该附加 laravel_token cookie 以响应通过 web 中间件发出的每个请求,不是吗?例如,该组中的任何东西都应该接收 cookie:

Route::group(['middleware' => ['web']], function () {
Route::get('/{vue?}', function () { return view('index'); } )->where('vue', '[\/\w\.-]*');
});

我正在尝试替换当前使用 client_secret 的工作流程,看到 oauth2 和网站在同一个域上,在 CreateFreshApiToken 的帮助下自我消费 api 的想法对它有很好的影响,尽管在这一点上我不是确定我是否做得对。

最佳答案

按要求引用我的评论

“您不会在此方法中收到 token 。创建的 cookie 将包含加密 token ,并将被护照 token 保护用于验证带有 cookie 的请求。因此,受 auth:api 中间件保护的路由将在没有"

除此之外,您可以为您的 SPA 使用密码授权。这就是你在网上看到的 90% 的教程所做的。但是他们将客户端 ID 和 secret 存储在 JavaScript 文件中,从安全角度来看,这是非常糟糕的做法。为了克服这个问题,您可以创建一个代理路由/中间件来注入(inject)客户端 ID 和 secret 。因此,您只需要传递电子邮件和密码即可获取访问 token 和刷新 token 。

但同样,您需要将访问 token 和刷新 token 存储在浏览器的本地存储中,这是开发人员通常所做的。但是 token 变得容易受到 XSS 攻击。因此,在使用 SPA 身份验证时,需要从安全角度考虑很多角度。

要克服上述所有问题,您需要将 token 安全地存储在 HttpOnly cookie 中,然后使用中间件从 cookie 中解析 token 并在任何 API 请求上对用户进行身份验证。这是使用 SPA 进行身份验证的最实用和安全的方法。 Laravel Passport 就是这样做的,但需要一些自定义登录路由的初始工作才能实现。 Passport 的一个问题是缺乏适当的文档以及其使用和工作的清晰度。

这里有一些关于这些的好资源
https://web.archive.org/web/20141208132104/http://alexbilbie.com/2014/11/oauth-and-javascript/

http://esbenp.github.io/2017/03/19/modern-rest-api-laravel-part-4/

https://stormpath.com/blog/token-auth-spa

关于Laravel 护照 - CreateFreshApiToken 没有 laravel_token cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45356999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com