маршрут вызова laravel от контроллера

В данный момент я пишу API в Laravel и использую паспорт. Мой клиент будет использовать собственный API, поэтому я использую персональный доступ в Passport.

Я не хочу показывать свой маршрут oauth и предоставлять идентификатор или секрет в запросе POST, поэтому я создал маршрут, который размещает сообщения пользователя также для входа в систему, а затем обрабатывает отправку запроса POST на маршрут oauth / token, например ниже,

protected function authenticate(Request $request) {
        //return $request->input();
        //return Response::json($this->client);
        $email = $request->input('username');
            $password = $request->input('password');
            $request->request->add([
                'username' => $email,
                'password' => $password,
                'grant_type' => 'password',
                'client_id' => $this->client->id,
                'client_secret' => $this->client->secret,
                'scope' => '*'
            ]);

            $tokenRequest = Request::create(
                env('APP_URL').'/oauth/token',
                'post'
            );

            return Route::dispatch($tokenRequest)->getContent();

        }

Моя проблема в том, что моя аутентификация возвращает 200 независимо от того, был ли вход в систему oauth успешным. Есть ли способ запустить маршрут от контроллера и вернуть для него этот http-код, а не метод, который он был вызван из HTTP-ответа?


person Udders    schedule 02.10.2016    source источник
comment
Если ваш интерфейс использует API напрямую, в одном приложении и с использованием JavaScript, вы можете просто использовать встроенный токен CSRF. Вы видели это? laravel.com/docs/5.3/   -  person tptcat    schedule 02.10.2016
comment
Возможный дубликат метода контроллера доступа другого контроллера в Laravel 5   -  person tptcat    schedule 02.10.2016


Ответы (1)


это должно решить проблему.

$data = [
        'grant_type'=> 'password',
        'client_id'=> 99,
        'client_secret'=> 'hgfhfhjnhnjnjnjnj',
        'username'=> $request->username,
        'password'=> $request->password,
        'scopes'=> '[*]'
    ];
$request = Request::create('/oauth/token', 'POST', $data);
return app()->handle($request);
person OmEr    schedule 30.09.2018
comment
Добро пожаловать в Stack Overflow! Пожалуйста, не отвечайте только исходным кодом. Постарайтесь дать хорошее описание того, как работает ваше решение. См .: Как написать хороший ответ?. Спасибо - person sɐunıɔןɐqɐp; 30.09.2018
comment
Хотя это помогло. - person Robert; 26.05.2020