如何在运行时更改Tymon的JWT Auth包中的jwt机密,以编码不同主机(子域)的令牌

时间:2019-04-09 09:32:12

标签: php laravel jwt-auth

我正在构建多租户应用程序,并且我想为每个租户设置不同的jwt机密。为此,我创建了中间件,在其中获取活动租户的jwt_secret并使用Config外观对其进行设置,如下所示:

Config::set('jwt.secret', Tenant::getActiveTenant()->jwt_secret);

此后,我转储配置设置,它显示正确的新值,但程序包本身不使用它,但是如果我在运行时将数据库连接设置更改为“承租人”值,则程序包将正确使用它。 ..

有什么主意吗?

谢谢

2 个答案:

答案 0 :(得分:0)

我通过直接在setSecret()方法上设置秘密来解决此问题:

JWTAuth::manager()->getJWTProvider()->setSecret(Tenant::getActiveTenant()->jwt_secret);

这不是最漂亮的解决方案,但目前它可以解决问题...

答案 1 :(得分:0)

use Tymon\JWTAuth\Facades\JWTAuth;

...

JWTAuth::getJWTProvider()->setSecret('foobarbaz');

在此处查看详细信息https://github.com/tymondesigns/jwt-auth/issues/503