当lacade的lucadegasperi oauth2服务器被auth中间件捕获时该怎么办?

时间:2016-07-08 23:27:17

标签: laravel laravel-5.2 oauth2

目前正在构建一个oauth2服务器:

现在没有在说明书的哪个地方解决用户未登录时要做的事情。(大部分时间都是如此)

因此,在这种情况下 - 用户点击auth中间件将他们踢到登录屏幕......但是之后该怎么办?登录页面没有传递任何内容?那我怎么知道将用户重定向到哪里?

现在是的,我当然可以自己做,但在我这样做之前,我只是想确保我没有遗漏任何东西?再次,它不是文档中的地址,所以我只能假设这是通过思考?

让我知道你的想法。

史蒂夫

1 个答案:

答案 0 :(得分:0)

所以刚刚在我的Authenticate.php文件中进行了解决。其他任何人都很好奇我这样做了:

            $params = [];
            if($request->has('client_id'))
                $params['client_id'] = $request->client_id;
            if($request->has('redirect_uri'))
                $params['redirect_uri'] = $request->redirect_uri;
            if($request->has('response_type'))
                $params['response_type'] = $request->response_type;
            if($request->has('scope'))
                $params['scope'] = $request->scope;
            if($request->has('state'))
                $params['state'] = $request->state;

            return redirect()->route('login', $params);
            //return redirect()->guest('login');

将此传递给我的loginController。然后在loginController中:

        $params = [];
        if($this->request->has('redirect_uri'))
            $params['redirect_uri'] = $this->request->redirect_uri;
        if($this->request->has('response_type'))
            $params['response_type'] = $this->request->response_type;
        if($this->request->has('scope'))
            $params['scope'] = $this->request->scope;
        if($this->request->has('state'))
            $params['state'] = $this->request->state;
        if($this->request->has('client_id'))
        {
            $params['client_id'] = $this->request->client_id;
            //dd($params);
            return redirect()->route('oauth.authorize.get', $params);
        }

如果您发现任何问题,请与我们联系。

干杯

CITTI