Sanctum如果在生成token的时候同时生成session该如何配置?

目前使用的后台是前后端分类,鉴权库用的Sanctum,登录接口生成token,前端保存token。
由于我在使用Horizon,想顺便借用后台的guard鉴权,但是Sanctum没有生成cookit,想问一下:如何配置Sanctum自动生成cookie

暂时不想重写登录接口,尽量不动代码的情况下,通过配置实现

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

你可以考虑加一个jwt,这个还不错,有黑名单。这个就可以做无态。 自己现在cms使用rcba+jwt,欢迎交流。

1个月前 评论
勇敢的心 (楼主) 1个月前
cighsen02 (作者) 1个月前

horizon的頁面我目前的做法是通過在url上加一個密鑰參數 進行對比

緩存ip 一個小時 一個小時內不用加密鑰參數

1个月前 评论
勇敢的心 (楼主) 1个月前
nff93

Sanctum 但是生成 token 不也是你自己调用 createToken 吗,你在这个地方操作不就好了?

甚至你可以不需要后端生成 cookie ,你前端登录之后新建一个 cookie 保存 token 就行,然后添加一个中间件:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class CustomTokenMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        // 优先级:Header > Query > Body > Cookie
        $token = $request->bearerToken() 
              ?? $request->query('token') 
              ?? $request->input('token') 
              ?? $request->cookie('token');

        if ($token) {
            // 将 Token 绑定到请求中供后续鉴权使用
            $request->headers->set('Authorization', 'Bearer ' . $token);
        }

        return $next($request);
    }
}
1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!