【发布时间】:2020-12-24 00:59:23
【问题描述】:
我正在使用 Laravel 和 JWT 进行身份验证系统,但我有一些问题。
我使用tymon jwt 包
-
我在登录时生成了一个令牌,有效期为 24 小时,如果选中记住我复选框,则有效期为 2 年。 除了在这 2 年内我应该如何续订令牌,出于安全原因,我想我不必保留相同的令牌?
-
我必须在数据库中存储一些东西吗?比如一个记住我的令牌,或者一个刷新令牌?
我对这一切有点迷茫,我想了解如何继续。 我已经在网上搜索了很多,但找不到我想要的,或者不完整。
public function login()
{
$credentials = request(['email', 'password']);
$ttl = env('JWT_TTL');
if (request(['remember_me']) == true) {
$ttl = env('JWT_REMEMBER_TTL');
}
if (!$token = auth()->attempt($credentials)) {
return response()->json(['error' => 'Wrong credentials'], 401);
}
return $this->respondWithToken($token, $ttl);
}
protected function respondWithToken($token, $ttl)
{
return response()->json([
'access_token' => $token,
'token_type' => 'bearer',
'expires_in' => $ttl
]);
}
JWT_TTL=1440
JWT_REMEMBER_TTL=1051200
提前致谢,
【问题讨论】: