Horizon、Telescope 正式环境中使用 Sanctum 的 token 登录

未匹配的标注

来源

stackoverflow.com/questions/710662...

创建中间件

随便取个名 CheckTokenAndAddToHeader.php

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

/**
 * This middleware check if the request has _token key and adds this into the Authorization header to take advantage of
 * the sanctum middleware
 */
class CheckTokenAndAddToHeader
{
    /**
     * Handle an incoming request.
     *
     * @param  Request  $request
     * @param  Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return Response|RedirectResponse
     */
    public function handle(Request $request, Closure $next): Response|RedirectResponse
    {
        if (isset($request->_token)) {
            $request->headers->set('Authorization', sprintf('%s %s', 'Bearer', $request->_token));
        }

        return $next($request);
    }
}

horizon、telescope 的 config 文件,middleware 改 webapi

添加新增的中间件

use App\Http\Middleware\CheckTokenAndAddToHeader;

        'api' => [
            CheckTokenAndAddToHeader::class,
            EnsureFrontendRequestsAreStateful::class,
            'throttle:api',
            SubstituteBindings::class,
        ],

访问

带上 ?_token=你的token 即可。比如:

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~