[英]Laravel sanctum check if user is authenticated
使用 Laravel 密室時如何檢查用戶是否通過身份驗證?
例子:
Controller:
public function testAuth(Request $request)
{
if ($request->user()) {
return "auth";
} else {
return "guest";
}
}
api.php
Route::get('testauth', [MyTestController::class, 'testAuth']);
即使我在標頭中傳遞令牌,這條路線也總是返回客人。
當我添加 sanctum 中間件時,路由返回auth
api.php
Route::get('testauth', [MyTestController::class, 'testAuth'])->middleware('auth:sanctum');
但我不想那樣,我想在不使用中間件的情況下檢查用戶是否在 controller 中經過身份驗證
試試下面的代碼會幫助你.....你可以使用 user('sanctum') 而不是 user()
public function testAuth(Request $request)
{
if ($request->user('sanctum')) {
return "auth";
} else {
return "guest";
}
}
首先像這樣將auth中間件與sanctum guard 連接到路由
Route::get('/somepage', 'SomeController@MyMethod')->middleware('auth:sanctum');
然后在路由閉包/控制器操作中訪問它
auth()->user()
照常
授權 http header 必須持有您的不記名令牌
return auth('sanctum')->check() ? "Auth" : "Guest";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.