首页 > 解决方案 > 从内部 API 取消签名/解码 JWT

问题描述

我正在修改我们的 laravel 站点,以通过我们自己的内部 API 验证用户身份,而不仅仅是针对数据库中的密码。

当调用 API 并验证用户是否存在时,它会返回多个具有自己范围的 JWT。我需要取消签名、解码和缓存这些。

我的问题是,我已经研究了 laravel 的包来使用 JWT 执行此操作,甚至安装了 Tymon 库来研究它,但这似乎更多是关于通过 Laravel 发布令牌。

我有这个登录功能,一旦用户登录,就会在登录页面视图上转储编码的令牌:

public function login(Request $request)
{
    $this->validate($request, [
        'email' => 'required',
        'password' => 'required',
    ]);
    $credentials = $request->only('email', 'password');

    $email = $request->input('email');
    $password = $request->input('password');

    $authService = new AuthService();
    $login = $authService->loginGetToken($email, $password);
    dd($login);
    //var_dump($login); //this dumps upon 'sign in' then redirectes to login page

    return redirect(route('auth.login'))
        ->with('login', $login);
}

所以我已经成功地从 API 返回了我的多个 JWT,但是在这里取消签名和解码它们的最佳方法是什么?我有一个用于密钥的公钥,但我不确定如何成功地将未签名和/或解码的令牌转储到视图中,以便我可以在我的页面上看到用于调试的范围。

标签: phplaravelapijwt

解决方案


推荐阅读