Я знаю, как работает базовая аутентификация для регистрации / входа в Laravel. Тем не менее, я хочу узнать, как настроить регистрацию пользователя (для предоставления пароля). Я установил Passport (2.0) — Passport Grant, и я могу получить токен; однако я не смог найти ничего для регистрации пользователя. Тогда я нашел тема здесь объясняя, что я должен назвать oauth/token
внутренне, но также не мог понять, как этого добиться.
Так что я думал, создает signup()
метод в контроллере и обрабатывать регистрацию пользователя самостоятельно, но как тогда передать необходимые данные oauth/token
маршрут? Потому что то, что Laravel использует для $request
является Request $request
но то, что использует паспорт ServerRequestInterface $request
и когда я vardump $ запрос на oauth/token
Метод IssueToken, он совершенно другой Request $request
,
// Setup new method
public function signup(Request $request) {
// do validations
// create user
User::create([
'email' => $request->username,
'password' => bcrypt($request->password),
]);
$client = \Laravel\Passport\Client::where('password_client', 1)->first();
$oauthData = [
'grant_type' => 'password',
'client_id' => $client->id,
'client_secret' => $client->secret,
'username' => $request->email,
'password' => $request->password,
'scope' => null
]
// Here, I got confused how to pass this `oauthData` to `issueToken()` route
// and it takes it as `ServerRequestInterface $request`
}
Кому-то здесь понравилось, но не знаю, как я должен точно реализовать этот подход. Потому что мой /oauth/token
Метод post-метода routeToken () выглядит следующим образом:
public function issueToken(ServerRequestInterface $request)
{
return $this->withErrorHandling(function () use ($request) {
return $this->server->respondToAccessTokenRequest($request, new Psr7Response);
});
}
Я очень растерялся и не мог понять, как это преодолеть. Как правильно обрабатывать такой сценарий, когда мне нужно зарегистрировать пользователей через API?
Задача ещё не решена.
Других решений пока нет …