laravel - Laravel 7.0 - tymon/jwt-auth - 检查令牌是否有效
问题描述
尝试使用 tymon/jwt-auth (JWT) 在 laravel 安装中实现登录端点。登录,注销,获取用户数据工作正常。我想要一个端点来检查承载令牌。有一种简单的方法可以通过以下方式实现:
Route::get('/valid', function () {
return 1;
})->middleware('auth:api');
如果令牌有效,则 HTTP 返回码 == 200,如果不是,则返回 401 码。由于端点正在检查令牌而不是经过身份验证的通信,因此我希望控制器返回关于有效令牌的真/假 200 - OK。
我看了一下模块的“幕后”,这就是我能走多远(不工作):
$tokenKey = $request->bearerToken();
$jws = \Namshi\JOSE\JWS::load($tokenKey);
$jwsSimple = new SimpleJWS($jws->getHeader());
$jwsSimple::load($tokenKey);
$jwsSimple->setPayload($jws->getPayload());
$jwsSimple->setEncodedSignature(explode('.', $tokenKey)[2]);
$tmpVal = $jwsSimple->isValid($tokenKey);
有没有更好的方法来实现这一目标?我认为应该有一个服务提供商,但无法弄清楚如何实现这一点。先感谢您。
解决方案
您可以删除auth:api
中间件,然后有类似的东西:
return response()->json([ 'valid' => auth()->check() ]);
推荐阅读
- batch-file - 通过右键单击批处理文件提取多个 Rar/Zip 文件
- python - 在 Python 中使用一个行列表推导从一个列表中获取两个列表
- c++ - C++ 数组中的 C6385 和 C6201 警告
- php - LARAVEL::如何在另一个刀片页面上显示请求的日期范围
- excel - 重命名形状组-小问题
- python - 如何使用 lambda 重命名 DataFrame 列?
- python - 如何接收来自按钮的输入
- ignite - Apache Ignite 是否支持 SQL 模式下的强一致性?
- gatsby - Gatsby build/createPages:错误处理
- php - 如何在 Laravel 中为多个域设置会话 cookie?