亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“message”: “方法 Illuminate\\Auth\\SessionGuard:

“message”: “方法 Illuminate\\Auth\\SessionGuard:

PHP
函數式編程 2023-11-05 15:24:51
我正在嘗試將 JWT 添加到 .按照文檔設置所有內容。https://jwt-auth.readthedocs.io/en/develop/quick-start/"tymon/jwt-auth": "^1.0"Laravel Framework 7.26.1這是我的AuthController.php<?php namespace App\Http\Controllers;        use Illuminate\Support\Facades\Auth;    use App\Http\Controllers\Controller;        class AuthController extends Controller    {        /**         * Create a new AuthController instance.         *         * @return void         */        public function __construct()        {            $this->middleware('auth:api', ['except' => ['login']]);        }            /**         * Get a JWT via given credentials.         *         * @return \Illuminate\Http\JsonResponse         */        public function login()        {                $credentials = request(['email', 'password']);                if (! $token = Auth::attempt($credentials)) {                return response()->json(['error' => 'Unauthorized'], 401);            }                return $this->respondWithToken($token);        }...這是 API.phpRoute::post('login', 'AuthController@login')->middleware('api');Route::post('logout', 'AuthController@logout');Route::post('refresh', 'AuthController@refresh');Route::post('me', 'AuthController@me');當試圖從郵遞員那里擊中時,這就是我得到的http://127.0.0.1:8000/api/login/
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

好。所以顯然你必須在expires_in中指定守衛'expires_in' => auth('api')->factory()->getTTL() * 60


我將函數更新為respondWithTokenAuthController.php


return response()->json([

        'access_token' => $token,

        'token_type' => 'bearer',

        //'expires_in' => auth()->factory()->getTTL() * 60

        'expires_in' => auth('api')->factory()->getTTL() * 60

    ]);

它修復了它。


查看完整回答
反對 回復 2023-11-05
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

正確,但由于您正在處理 API,因此您可以按照以下方式將默認保護從 更改為 in:webapiconfig/auth.php


'defaults' => [

        'guard' => 'api',

        'passwords' => 'users',

],

然后,您可以在不指定守衛的情況下使用 auth:'expires_in' => auth()->factory()->getTTL() * 60


您可能還需要運行以清除緩存,并且一切都應該很好。php artisan optimize


查看完整回答
反對 回復 2023-11-05
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

如果您要為 graphql 應用程序實現此功能,請確保將其包含在config/auth.php


'defaults' => [

    'guard' => 'api',

    'passwords' => 'users',

],

'guards' => [

    'api' => [

        'driver' => 'jwt',

        'provider' => 'users',

    ],

],

也不要忘記在用戶.php模型中實現implements JWTSubject


class User extends Authenticatable implements JWTSubject

{ use HasApiTokens, HasFactory, Notifiable;


 public function getJWTIdentifier () {

    return $this->getKey();

 }


 public function getJWTCustomClaims () {

    return [];

 }

}


查看完整回答
反對 回復 2023-11-05
  • 3 回答
  • 0 關注
  • 235 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號