【问题标题】:Lumen multiple authentication types流明多种认证类型
【发布时间】:2016-02-05 04:15:43
【问题描述】:

我正在寻找一种基于先前在数据库中设置的身份验证类型来对客户端进行身份验证的方法。所以,客户端应该点击类似于这样的 url:api.com/client/service/method,因此基于 url 中的这个客户端字段,我需要检索数据库中为该客户端设置的身份验证类型,并尝试使用该客户端对客户端进行身份验证类型(例如 HTTP Basic 或 OAuth)。

我是 Lumen 的新手,所以我想知道你们是否有关于如何构建它的建议。这些要求是一成不变的,所以我需要按照描述的方式实现它。我关心我应该如何组织这些身份验证模型,以及如何找出试图发送请求的身份验证用户的类型?提前致谢。

【问题讨论】:

    标签: laravel authentication oauth lumen


    【解决方案1】:

    您可以根据驱动程序在运行时简单地修改身份验证驱动程序吗?

    public function auth(array $credentials = [], $method)
    {
        switch ($method) {
            case: 'oauth':
               $driver = 'oauth';              
    
               break;
            default:
               $driver = 'eloquent';
    
               break;
        }
    
        // Set the authentication driver.
        Config::set('auth.driver', $driver);
    
        // Attempt authentication.
        if (Auth::attempt($credentials)) {
             // Ex.
        }
    }
    

    【讨论】:

    • 谢谢,只有一个问题。我正在尝试使用 HTTP 基本驱动程序进行身份验证,但看起来当我将 $driver 设置为值“基本”时,在您的示例中,实际上 EloquentUserProvider::validateCredentials() 被调用了? Lumen 完全支持 HTTP Basic 吗?
    • 我实际上并不确定 Lumen 是否支持 HTTP 身份验证,不幸的是,我在其文档中找不到任何关于它的内容...
    • 我明白了。那么,如果我安装 Laravel 的 auth 包 github.com/illuminate/auth ,我是否可以使用基本的 http 驱动程序?
    猜你喜欢
    • 2016-06-10
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 2017-05-19
    • 2015-03-27
    • 1970-01-01
    相关资源
    最近更新 更多