Я обновил:
"tymon / jwt-auth": "0.5. *",
с очень старой версии, и кажется, что API изменился. Мне удалось исправить вход в систему, используя:
public function login(Request $request)
{
$credentials = $request->only(['username', 'password']);
$validator = Validator::make($credentials, [
'username' => 'required',
'password' => 'required',
]);
if($validator->fails()) {
throw new ValidationHttpException($validator->errors()->all());
}
if (!$token = auth()->attempt($credentials)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
$user = auth()->user();
$user->ip_address = $request->ip();
if ($request->device_token)
$user->device_token = $request->device_token;
$user->save();
$data['token'] = $token;
$data['email'] = $user->email;
return response()->json($data);
}
Итак, мой вход в систему работает, но все API, для которых требовался токен, теперь не работают.
Пример сбоя API:
class UserController extends Controller
{
public function __construct()
{
// $this->middleware('auth:api', ['except' => ['login']]);
}
public function enterWorld(Request $request)
{
$token = $request->input('token');
$user = JWTAuth::toUser($token);
return $user;
}
Есть идеи, как преобразовать токен из запроса к пользователю с помощью нового API? Я не смог найти никаких документов об этом.
Я пытался:
return response () -> json (auth () -> user ());
но в этом API он возвращает пустой массив. только в логине это работает.