Laravel 5 JWT-token有多个表格

时间:2015-03-29 20:37:43

标签: laravel-5 jwt

我有一个laravel 5后端,它发送一个jwt-token作为json响应(带https://github.com/tymondesigns/jwt-auth)。用户身份验证正常工作。

我需要做的是使用jwt-token进行管理员身份验证。管理员位于名为admin的不同表上。

如何为不同的表使用jwt-token?

5 个答案:

答案 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)

目前该软件包没有多个表支持来验证您的应用程序用户。

例如,您可以做的是:

  1. 为需要管理表与jwt-auth一起工作的路由创建中间件。

  2. 在该中间件中,将配置更改应用于jwt并在身份验证之前更改模型或使用jwt令牌。

  3. 首选解决方案:

    你可以在这里看到这个没有连接到任何配置的软件包,它只是一个使用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