#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. Как насчет токена обновления? Как создать это вручную?