php Laravel HTTP专用cookie

ljo96ir5  于 2023-08-02  发布在  PHP
关注(0)|答案(1)|浏览(98)

我有一个使用Laravel和Vue.js的小项目。基于YouTube教程和官方文档,我使用Sanctum实现了一个简单的身份验证系统。它工作正常;然而,我担心使用本地存储在客户端上存储JWT,因为我认为这不是一种处理身份验证令牌的安全方法。在Google上搜索时,我遇到了“仅限http-only”的方法。如何在Laravel 9.52中实现此功能?我注意到许多教程都是针对Laravel的旧版本,对我不起作用:(

bksxznpy

bksxznpy1#

Sanctum有两种方式来验证用户,通过Laravel内置的基于cookie的会话或Authorization头中的API Token。
如果您使用cookie,那么您就没有什么可做的了。
如果您使用您需要将其存储在客户端的某个地方的令牌,您(基本上)有两个选择:本地存储或cookie。
但是Sanctum只在Authorization头中查找它,所以您需要在将它插入请求头之前检索它(storage/cookie)。所以你的cookie不能只使用http...
另一种解决方案是将其发送到一个仅为http的cookie中,然后通过在AppServiceProvider的 Boot 方法中添加这个来创建您自己的Laravel\Sanctum\Guard::getTokenFromRequest()回调函数,让sanctum检索它:

Sanctum::getAccessTokenFromRequestUsing(function($request) {
    return $request->cookie('your_cookie_token_name');
});

字符串

相关问题