Laravel:多身份验证方法实现


Laravel: multiple auth method implementation

在一个 laravel 项目中,我将有两个身份验证方法:

    API 客户端
  1. 身份验证(检查客户端是否可以查询 API(与专用的雄辩模型(类似于 APIUser(
  2. 使用另一个专用模型(用户某物(进行用户身份验证(检查用户凭据(
我想通过第一个身份验证系统

进行身份验证,然后通过第二个身份验证系统检查用户凭据。例:

curl -u a:b myapi/?user=c&pass=d

因此,ab是API客户端身份验证的登录名和密码,cd是用户身份验证的登录名和密码。最好的方法是什么:创建一个多身份验证系统?或者考虑只有一个系统用于身份验证,另一个系统只是查询数据库?还是别的什么?(希望我的问题足够清楚,如果需要我可以编辑(

Multiauth 的工作方式类似于内置的 laravel 身份验证,但允许很少的独立身份验证会话(您可以登录第一个、第二个或两个帐户(。

使用 Ollieread 的 MultiAuth 扩展 for Laravel。它为您设置了一切。只需打开文件app/config/auth.php并替换此数组:

return array(
    'driver' => 'eloquent',
    'model' => 'User',
    'table' => 'users',
    'reminder' => array(
        'email' => 'emails.auth.reminder',
        'table' => 'password_reminders',
        'expire' => 60,
    ),
);

return array(
    'multi' => array(
        'admin' => array(
            'driver' => 'eloquent',
            'model' => 'Admin'
        ),
        'user' => array(
            'driver' => 'database',
            'table' => 'users'
        )
    ),
    'reminder' => array(
        'email' => 'emails.auth.reminder',
        'table' => 'password_reminders',
        'expire' => 60,
    ),
);

当然,您可以根据需要添加任意数量。然后将默认User.php模型复制粘贴到Admin.php表。