![](/img/trans.png)
[英]Laravel Sanctum auth:sanctum middleware with Angular SPA unauthenticated response
[英]Laravel Sanctum authenticate middleware auth:sanctum for different model
我在我的 Laravel 9 項目中使用 Laravel Sanctum 3.x。 我正在構建一個微服務功能,需要通過我的微服務Microservice
對它們進行身份驗證,我在其中添加了HasApiTokens
並創建了我的令牌。
我創建了額外的身份驗證配置:
'guards' => [
'api' => [
'driver' => 'session',
'provider' => 'users',
],
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'microservice' => [
'driver' => 'session',
'provider' => 'microservices',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'microservices' => [
'driver' => 'eloquent',
'model' => App\Models\Microservice::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
然后,在我的 controller 中,我想使用我的微服務身份驗證檢查而不是默認的auth:sanctum
中間件檢查我對添加什么感到困惑?
這是我的 controller:
<?php
namespace App\Http\Controllers\Hub;
use App\Http\Controllers\Controller;
use App\Http\Responses\ApiSuccessResponse;
use App\Http\Responses\ApiErrorResponse;
use App\Http\Responses\ApiValidationErrorResponse;
use Illuminate\Http\Request;
use App\Models\Microservice;
class HubController extends Controller
{
/**
* Instantiate a new HubController instance.
*
* @return void
*/
public function __construct()
{
// TODO: how to change to Microservice auth?
$this->middleware('auth:sanctum');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function __invoke(Request $request)
{
return new ApiSuccessResponse(null, [
'message' => 'Hub controller - post'
]);
}
}
我是否只需要將auth:sanctum
更改為auth:microservice
然后它就會驗證令牌?
您需要將保護傳遞給您的身份驗證邏輯。
if(auth()->guard('microservices')->attempt($request->only('email','password'))) {
return auth()->guard('admin')->user(); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.