@TylerDurden_2

Laravel Passport, Alexa Skill. Как авторизоваться через implicit flow?

Добрый день!

1. Есть бэкенд, есть куча юзеров на нём.
2. Есть скилл алексы

Не получается связать 1 и 2 так, чтобы каждый юзер алексы (который заранее через implicit привязал свой аккаунт кредами) имел доступ к BE API. Bearer token приходит от алексы с каждым запросом, но он лежит не в headers, а просто в request body. Laravel разумеется не подхватывает авторизацию, то есть суть проблемы - алекса даёт токен, как найти юзера по этому токену и возможно ли это?
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
@TylerDurden_2 Автор вопроса
Ну в общем решил плоско и топорно.
Если кто-то найдёт лаконичное решение - поделитесь, пожалуйста.

$request->bearerToken() пишется в middleware при помощи $request->headers->add(['Authorization' => 'Bearer ' . $token]); Но авторизация при этом не появляется.

composer require firebase/php-jwt

...
use \Firebase\JWT\JWT;
...

$publicKey = <<<EOD
-----BEGIN PUBLIC KEY-----
Ключ из storage/oauth-public.key
-----END PUBLIC KEY-----
EOD;

$token = JWT::decode($request->bearerToken(), $publicKey, array('RS256'))->jti;
$item = DB::table('oauth_access_tokens')->where('id', $token)->first();
$user = $item->user_id;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы