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

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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 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年前 评论

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