【问题标题】:Laravel jwt authentication howto (is my solution good?)Laravel jwt authentication howto(我的解决方案好吗?)
【发布时间】:2019-11-27 01:30:16
【问题描述】:

我有许多 laravel (5.4) 应用程序。

主应用程序处理注册、登录等。其他应用程序需要使用主应用程序的用户表和身份验证,因此如果有人登录主应用程序,其他应用程序应该将他/她视为登录用户。

研究了一段时间,想出了 JWT 认证(因为另一个 node.js 应用程序已经使用此方法与主 laravel 应用程序进行身份验证)。在 node.js 中,它是通过 ajax 完成的,例如 node app 调用https://www.mainapp.com/token,如果存在 jwt 令牌,则返回一个 jwt 令牌,然后 node 对此进行解密,然后一切继续。

作为所有使用 tymon/jwt-auth 包的 laravel 应用程序,我也可以在其他 laravel 应用程序中做同样的事情,但在我看来有点笨拙,有没有更好的方法在应用程序之间共享身份验证?还是服务器端解决方案?

【问题讨论】:

    标签: php laravel authentication jwt


    【解决方案1】:

    您的 JWT 正在使用您唯一的 JWT_SECRET。因此,只要您的所有 env 文件都以 JWT_SECRET 的相同 env 值运行,您只需使用中间件来检查令牌并验证用户身份。

    此外,您的 JWT 有很多参数可供您调查,但其中一些最重要的是 exp(到期时间)和 sub(来自用户表的用户 ID)。所以你得到了几乎所有你需要的信息。

    【讨论】:

    • 它抓取令牌,解密它,并使用 laravel 内置的身份验证和解密的令牌数据。创建新的中间件是不是更好的解决方案?
    • 您只希望您的端点位于身份验证中间件的范围内。您可以使用 jwt 中间件本身来验证端点并授予访问控制器的权限
    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 2010-11-08
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    相关资源
    最近更新 更多