Laravel 5管理员的单独身份验证

时间:2015-05-22 06:00:34

标签: php authentication laravel laravel-5

我为用户和后端用户提供了2个表 - 一个用于前端用户(常规用户/客户),另一个用于后端用户(管理员)。请注意,这两个表有不同的结构,不要告诉我将它们组合起来并使用一个表。

我有两个解决方案:

  1. 是复制/扩展身份验证以分隔后端身份验证,如下所示:Laravel 5 Implement multiple Auth drivers
  2. 是创建一个表让我们说UserPivot。其中包含user_id(整数)和user_type(enum(' frontend',' backend'))列。
  3. 我的问题是实现这个的最佳方法是什么?你有更好的解决方案吗?

    我想要数字1的想法,因为它将后端用户的身份验证分开,并且它也会分离会话。

2 个答案:

答案 0 :(得分:0)

我正在使用这样的auth基础架构,客户端和管理员需要使用相同的身份验证表单进行登录。客户和管理员都有各自的表格。这里的诀窍是:

  1. 在用户和管理员之间创建一个连接表,其中使用鉴别器来识别卷(正如@Jake-Opena所说)
  2. 扩展Auth服务提供商,以实现基于角色验证凭据的方式:

    // returns an user or admin based on a role and id
    retrieveById($identifier); 
    
    // returns an user or admin based on a role and its credentials 
    retrieveByCredentials(array $credentials)
    
    // returns an user or admin based on a role and its token
    retrieveByToken($identifier, $token)
    
    // validate the credentials agains the table data based in a role
    validateCredentials(Authenticatable $user, array $credentials)
    
  3. 另一种方法(丑陋的选项)是,如果要避免创建连接表,则创建新表单的输入,其中用户选择使用哪个角色来验证其凭据。

答案 1 :(得分:0)

我找到了解决这个问题的软件包。我使用了https://github.com/Kbwebs/MultiAuth