Saya sedang membuat API dalam Laravel dan saya mahu mencipta rutin token muat semula.
Saya menggunakan contoh dari laman web
<?php namespace AppHttpControllers; use IlluminateSupportFacadesAuth; use AppHttpControllersController; 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 IlluminateHttpJsonResponse */ public function login() { $credentials = request(['email', 'password']); if (! $token = auth()->attempt($credentials)) { return response()->json(['error' => 'Unauthorized'], 401); } return $this->respondWithToken($token); } /** * Get the authenticated User. * * @return IlluminateHttpJsonResponse */ public function me() { return response()->json(auth()->user()); } /** * Log the user out (Invalidate the token). * * @return IlluminateHttpJsonResponse */ public function logout() { auth()->logout(); return response()->json(['message' => 'Successfully logged out']); } /** * Refresh a token. * * @return IlluminateHttpJsonResponse */ public function refresh() { return $this->respondWithToken(auth()->refresh()); } /** * Get the token array structure. * * @param string $token * * @return IlluminateHttpJsonResponse */ protected function respondWithToken($token) { return response()->json([ 'access_token' => $token, 'token_type' => 'bearer', 'expires_in' => auth()->factory()->getTTL() * 60 ]); } }
Tetapi ia menunjukkan ralat ini "Kaedah tidak ditentukan 'kilang'.intelephense(1013)" "Kaedah yang tidak ditentukan 'refresh'.intelephense(1013)"
Bagaimana untuk melaksanakan rutin token penyegaran ini? Dan mengapa ralat ini berlaku? Dalam versi lama, apabila perpustakaan JWT masih tymondesigns/jwt-auth, ralat ini tidak berlaku.
Laravel 9 PHP 8.1
Anda boleh memuat semula token menggunakan arahan berikut
Walau bagaimanapun, jika anda mahu token dimuat semula pada setiap permintaan (tidak digalakkan), tambah perisian tengah jwt.refresh dalam appHttpKernel.php anda