如何在Laravel 5.7中使用第三方api进行后备身份验证检查?

时间:2019-02-06 13:54:56

标签: php laravel authentication laravel-5 laravel-5.7

您好,感谢所有抽出宝贵时间仔细研究此问题的人。

这里有一点背景。我们当前的系统具有一个包含一组用户的客户端仪表板。登录此仪表板时,它将首先查看用户名是否在数据库中。如果找不到,则它将调用具有“网站管理员”管理员列表的第三方api,并在那里验证凭据。

我正在尝试在Laravel 5.7中实现此功能,但不确定如何去做。到目前为止,我已经创建了一个ActiveDirectory类,该类可以调用API来验证凭据。然后在LoginController中,我有以下内容:

public function login(Request $request)
    {
        // Validate the form data
        $this->validate($request, [
            $this->username()  => 'required',
            'password' => 'required|min:6'
        ]);


        if ($this->attemptLogin($request)) {
            return $this->sendLoginResponse($request);
        }

        // Need to check if user is in active directory
        if (ActiveDirectory::validateWebmasterAdmin(request('username'), request('password'))) {
            return $this->sendLoginResponse($request);
        }

        // If the login attempt was unsuccessful we will increment the number of attempts
        // to login and redirect the user back to the login form. Of course, when this
        // user surpasses their maximum number of attempts they will get locked out.
        $this->incrementLoginAttempts($request);

        return $this->sendFailedLoginResponse($request);
    }

我得到了正确的回复,但是用户仍未通过身份验证,我确定这是由于我未正确执行的操作。我认为这与$this->sendLoginResponse($request)有关。

如果从API获得的凭据匹配,我想使用我从应用程序中获得的一些数据。例如,API将返回一个名称,而我想在类似{{Auth :: user()-> name}}

的视图中使用它

任何帮助将不胜感激。

0 个答案:

没有答案