В настоящее время я разрабатываю Laravel 5.8 с использованием JWT Auth, все работает также в Postman, но когда я пытался протестировать в Browser, я получил много ошибок, и одна за другой была исправлена. Теперь я получаю еще одну ошибку при попытке передать JSON Web Token с помощью запроса. Маркер не предоставлен правильно. После того, как я войду в систему в:
public function signin(Request $request)
{
$this->validate($request, [
'username' => 'required',
'password' => 'required'
]);
// grab credentials from the request
$credentials = $request->only('username', 'password');
try {
// attempt to verify the credentials and create a token for the user
if (! $token = JWTAuth::attempt($credentials)) {
return response()->json([
'error' => 'Invalid Credentials, username and password dismatches. Or username may not registered.',
'status' => '401'
], 401);
}
} catch (JWTException $e) {
// something went wrong whilst attempting to encode the token
return response()->json(['error' => 'could_not_create_token'], 500);
}
return response()->json([
'token' => $token
]);
}
Токен успешно сгенерирован. Но когда мне нужен токен другому контроллеру, токен сгенерирован неудачно, один из примеров в этом методе:
public function index(Request $request)
{
// this will set the token on the object
JWTAuth::parseToken();
// and you can continue to chain methods
$user = JWTAuth::parseToken()->authenticate();
$token = JWTAuth::getToken();
die($token);
try {
if (! $user = JWTAuth::parseToken()->authenticate()) {
return response()->json(['user_not_found'], 404);
}
} catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
return response()->json(['token_expired'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {
return response()->json(['token_invalid'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\JWTException $e) {
return response()->json(['token_absent'], $e->getStatusCode());
}
Каждый раз, когда я хотел бы JWTAuth::parseToken();
, я получал эту ошибку:
Не удалось проанализировать токен из запроса
Так почему это случилось? И что я должен делать? Поскольку в методе signin
токен успешно сгенерирован, но в index
я не могу получить доступ к токену. Спасибо за ваше внимание.