【问题标题】:using two different models and tables for auth system at laravel 4?在 laravel 4 中使用两种不同的模型和表进行身份验证系统?
【发布时间】:2015-06-09 19:00:44
【问题描述】:

我有具有 2 个身份验证系统的应用程序。有:用户和公司。

有没有办法为不同的模型制作一个单一的身份验证系统,而不使用任何包 (auth)?

【问题讨论】:

    标签: laravel-4


    【解决方案1】:

    我会一步一步告诉你的。

    1. 在默认配置 laravel4 中,请参阅 app/config/auth.php ,您将看到默认模型是用户。并且您想以公司身份登录。

    2. 尝试登录,如果 Auth 凭据为 false(这意味着您在 users 表中的用户凭据不可用),请将 auth 模型更改为 Company。

    3. 如果第 2 步失败,您将无法登录。

    代码是

    if(Auth::attempt($credentials)){
        // User is login
    }
    else{
        // trying login as company
    
        // setting auth model to Company
        Config::set('auth.model', 'Company');
        $auth = Auth::createEloquentDriver();
        Auth::setProvider($auth->getProvider());
    
        if(Auth::attempt($credentials)){
            //if sucess
            Session::put('isCompany', true);
        }
        else{
            //login fails
        }
    }
    
    
    //in routes.php
    
    if (Session::has('isCompany')) {
        Config::set('auth.model', 'Company');
    }
    

    通常您可以使用Auth::user() 显示身份验证详细信息

    希望对你有帮助,谢谢

    【讨论】:

    • 一直在环顾四周,我认为这是最好的答案,也是最容易理解的。谢谢
    猜你喜欢
    • 2018-04-17
    • 1970-01-01
    • 2016-05-23
    • 2013-09-14
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    相关资源
    最近更新 更多