Я написал API в Laravel 5.8 для входа и регистрации пользователя.
Я использую JWTAuth в Laravel 5.8. Когда я тестировал Логин на Почтальоне, он выдал ошибку, неопределенная переменная: токен. Я пытался написать API для регистрации, когда я тестировал его, он работал отлично. Основываясь на том, что я видел в сети, я попытался добавить \ Illuminate \ View \ Middleware \ ShareErrorsFromSession :: class к ядру, но все равно та же ошибка.
LoginController
public function login(Request $request)
{
$credentials = $request->json()->all();
try
{
if(! $token == JWTAuth::attempt($credentials))
{
return response()->json(['error' => 'invalid_credentials'], 400);
}
}
catch(JWTException $e)
{
return response()->json(['error' => 'could_not_create_token'], 500);
}
return response()->json(compact('token'));
}
public function register(Request $request)
{
$validator = Validator::make($request->json()->all() , [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6',
'username' => 'required|string|max:255',
]);
if($validator->fails()){
return response()->json($validator->errors()->toJson(), 400);
}
$user = User::create([
'name' => $request->json()->get('name'),
'email' => $request->json()->get('email'),
'password' => Hash::make($request->json()->get('password')),
'username' => $request->json()->get('username'),
]);
$token = JWTAuth::fromUser($user);
return response()->json(compact('user', 'token'), 201);
}
api.php
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::post('register', 'UserController@register');
Route::post('login', 'UserController@login');
Route::get('profile', 'UserController@getAuthenticatedUser');
Я ожидал успеха, но он выдал ошибку:
ErrorException: неопределенная переменная: токен в файле C: \ xampp \ htdocs \ laravelapi \ app \ Http \ Controllers \ UserController.php в строке 52
Это моя строка 52:
if (! $ Token == JWTAuth :: попытки ($ учетные данные))