【问题标题】:Laravel with two different user typesLaravel 有两种不同的用户类型
【发布时间】:2014-12-09 01:42:26
【问题描述】:

对于我的 laravel 5 应用,我希望同时拥有管理员用户和客户端。过去,我对两者都使用了用户表,并且有一个标志是哪种类型的用户 - 带有一个连接表以获取更多客户信息。

我发现这种方法相当混乱......并且认为最好同时拥有用户表和模型以及客户表和模型。

这导致了我的问题,例如身份验证密码重置、身份验证尝试是针对用户表的。是否有可能使这也适用于客户端表。

这可能吗? (我已将 laravel 4 标记为解决方案也可能对此产生影响)。

【问题讨论】:

    标签: php laravel-4 laravel-5


    【解决方案1】:

    我在与 Laravel 中的多个用户打交道时遇到了类似的问题。

    我发现 multiauth Laravel 包非常有用,请查看 https://github.com/ollieread/multiauth

    文档非常简单。该插件最终扩展了原生 Laravel Auth 以允许多个用户。

    让我从网站上粘贴一个 sn-p:

    用法

    一切都以与原始库完全相同的方式完成,一个例外是所有 > 方法调用都以密钥(上述示例中的帐户或用户)作为方法本身的前缀。

    Auth::account()->attempt(array(
        'email'     => $attributes['email'],
        'password'  => $attributes['password'],
    ));
    Auth::user()->attempt(array(
        'email'     => $attributes['email'],
        'password'  => $attributes['password'],
    ));
    Auth::account()->check();
    Auth::user()->check();
    

    我发现必须在名为 user() 的用户类型上调用 user() 方法看起来很乱,所以我添加了一个很好的 get 方法来环绕它。

    Auth::user()->get();
    

    如果您有一个可以模拟另一个用户类型的用户类型,例如管理员模拟用户重新创建或检查某些内容,我添加了一个 impersonate() 方法,该方法简单地将 loginUsingId() 包装在请求用户上输入。

    Auth::admin()->impersonate('user', 1, true);
    

    第一个参数是用户类型,第二个参数是该用户的id,第三个参数是是否记住该用户,默认为false,可以省略。

    p>

    等等等等。

    希望这会有所帮助!

    【讨论】:

    • 这听起来很接近我所追求的!!谢谢,看看有没有其他结果
    • @Wizzard 当然很乐意提供帮助!如果它对你有用,如果你能接受我的回答,那就太好了。谢谢!
    猜你喜欢
    • 2020-06-24
    • 1970-01-01
    • 2015-05-31
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 2019-08-11
    • 1970-01-01
    相关资源
    最近更新 更多