Laravel passport: вручную создайте токен доступа

#laravel #laravel-5 #vue.js #vuejs2 #single-page-application

#laravel #laravel-5 #vue.js #vuejs2 #одностраничное приложение

Вопрос:

Я создаю SPA с использованием VueJS и Laravel.

Я использую Laravel passport для входа в систему, который работает нормально.

Однако я хотел бы иметь возможность отправлять пользователям волшебные ссылки для входа в систему. Однако я не уверен, как создать токен доступа без отправки запроса с паролем на маршрут oauth.

Кажется, что это должно быть действительно легко сделать, просто вставив нужные строки в oauth_access_tokens и oauth_refresh_tokens .

Но я просмотрел код в репозитории Passport и результаты Google, и все кажется намного сложнее.

Я хотел бы иметь возможность сделать что-то вроде этого:

 $user = User::findFromMagicLink($link);
$token = $user->createAccessToken();
return response()->json(['access_token' => $token->token, 'refresh_token' => $token->refresh_token])
  

Я предполагаю, что это невозможно, иначе это было бы где-нибудь задокументировано. Но если это что-то более сложное, чем это, я не могу в этом разобраться.

Кто-нибудь может указать мне правильное направление?

Ответ №1:

Попробуйте это, вы можете создать токен доступа следующим образом

 $user = User::findFromMagicLink($link)
$token  = $user->createToken('UserToken', ['*']);
//or directly access
$token  = $user->createToken('UserToken', ['*'])->accessToken;
  

Для получения дополнительной информации прочитайте: Управление личным токеном доступа

Комментарии:

1. Редактировать: извините, я кое-что неправильно понял. Я верну комментарий, как только снова проверю.

2. Вы можете прочитать здесь: github.com/laravel/passport/issues/71 вы можете создать свой пользовательский метод, но это не очень хороший способ

3. Спасибо, что, похоже, на самом деле сработало отлично!

4. Как насчет токена обновления? Как создать это вручную?