我有一个laravel 5后端,它发送一个jwt-token作为json响应(带https://github.com/tymondesigns/jwt-auth)。用户身份验证正常工作。
我需要做的是使用jwt-token进行管理员身份验证。管理员位于名为admin的不同表上。
如何为不同的表使用jwt-token?
答案 0 :(得分:3)
我有类似的问题,对我来说就足够了,只需创建路由中间件并更新auth.model(只需将\ App \ User更改为\ App \ Customer):
Config::set('auth.model', App\Customer::class);
您应该在模型中定义的表和其他数据库内容,因此上面的条目应该可以正常工作。
答案 1 :(得分:3)
它对我有用,我有2个用户客户端和salon_owner。要更改我更新的两件事auth.model和jwt.user:
Config::set('jwt.user', 'App\Salon_owner');
Config::set('auth.providers.users.model', \App\SalonOwner::class);
答案 2 :(得分:1)
目前该软件包没有多个表支持来验证您的应用程序用户。
例如,您可以做的是:
为需要管理表与jwt-auth一起工作的路由创建中间件。
在该中间件中,将配置更改应用于jwt并在身份验证之前更改模型或使用jwt令牌。
首选解决方案:
你可以在这里看到这个没有连接到任何配置的软件包,它只是一个使用JWT的包装器。
https://github.com/firebase/php-jwt
它是一个用于编码和解码JWT的库。你可以自由地做你想做的事情,也可以为每个令牌设置你的钥匙。在你的情况下,我会使用它。
创建包装器或存储库以处理身份验证,例如尝试,检查等,并将它们包装在此包中。
希望这有助于您制定自己的解决方案。
干杯。
答案 3 :(得分:1)
无需更改config/auth.php
中的提供程序。
您可以如下更改每个控制器中的__construct
功能。这样jwt知道要验证哪种模型。
AdminController
function __construct()
{
Config::set('jwt.user', Admin::class);
Config::set('auth.providers', ['users' => [
'driver' => 'eloquent',
'model' => Admin::class,
]]);
}
答案 4 :(得分:0)
它对我有用。你可以使用它们
Step 1: Before encoding has occurred.
String: you & me > them
Step 2: The string is encoded for HTML.
String: you & me > them
Step 3: String is converted back from HTML.
String: you & me > them