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

What to do when lucadegasperi oauth2 server for laravel gets caught by auth middleware?

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

现在说明中没有任何地方说明用户未登录时该怎么做。(大多数情况下都是这种情况)

所以在那种情况下 - 用户点击 auth 中间件将他们踢到登录屏幕......但是之后该怎么办?没有什么传递到登录页面?那么我怎么知道将用户重定向回哪里呢?

现在是的,我当然可以自己做这件事,但在我这样做之前,我只想确保我没有遗漏任何东西?再次说明文档中没有地址,所以我只能假设这是经过深思熟虑的?

让我知道你的想法。

史蒂夫

所以刚刚在我的 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。然后在登录控制器中:

        $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);
        }

如果您发现任何问题,请告诉我。

干杯

花旗