我有许多laravel(5.4)应用程序。
主应用程序处理注册,登录等。其他应用程序需要使用主应用程序的用户表和身份验证,因此,如果有人登录主应用程序,则其他应用程序应将其视为已登录用户。
花了一段时间研究这个问题,提出了JWT认证技术(因为另一个node.js应用程序已经使用此方法向主laravel应用程序进行身份验证)。在node.js中,它是用ajax完成的,例如,节点应用程序调用{{1}},并获取jwt令牌(如果存在),然后节点对其进行解密,然后一切继续进行。
作为所有使用tymon / jwt-auth软件包的laravel应用程序,我也可以在其他laravel应用程序中做同样的事情,但是在我看来有点笨拙,是否有更好的方法在应用程序之间共享身份验证?还是服务器端解决方案?
答案 0 :(得分:0)
您的JWT使用的是您唯一的JWT_SECRET
。因此,只要所有的env文件都以JWT_SECRET
的相同env值运行,您只需要使用中间件来检查令牌并验证用户身份。
您的JWT还具有很多参数可供您研究,但其中最重要的是exp
(这是到期时间)和sub
(这是来自用户表的用户ID) 。这样您就可以获得所需的几乎所有信息。