【发布时间】:2019-05-25 13:10:19
【问题描述】:
首先,让我承认我是 API 新手,现在我正在使用 Laravel 开发 JWT。我正在使用 tymon\jwt-auth(具体来说是tymon/jwt-auth:dev-develop --prefer-source)。我浏览了一些教程并能够生成 JWT 访问令牌。
这是我的登录代码:
public function login() {
$credentials = request(['email', 'password']);
if (!$token = auth('api')->attempt($credentials)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return response()->json([
'status' => 'success',
'message' => 'Login successful',
'data' => [
'access_token' => $token,
],
]);
}
我还需要获取刷新令牌和访问令牌,但找不到适用于我的情况的代码。
我尝试在代码中添加这些行:
$refresh_token = JWTAuth::refresh($token);
但邮递员返回此错误:
文件中需要一个令牌 /var/www/brochill-api/vendor/tymon/jwt-auth/src/JWT.php 在第 331 行
如果需要,我还可以提供我使用的其他配置 sn-ps。请帮忙!
【问题讨论】:
-
你可以在这里查看。 stackoverflow.com/questions/41325250/…
-
假设您设置正确,您只需调用
auth()->refresh()而不传递任何内容,因为它是受保护的端点,并且会解析现有令牌 -
@ahmad ,在我的情况下,
auth()->refresh()没有成功,经过反复试验,我添加了auth('api')->refresh($token)并生成了刷新令牌。所以我可以说问题已经解决了。谢谢你的时间:)
标签: laravel jwt refresh-token