Вход в социальную сеть Facebook Cognito с Angular 6: как использовать возвращенный код для аутентификации пользователя в усиленной аутентификации
У меня есть приложение angular 6, и я пытаюсь настроить социальный вход (facebook) с помощью функции усиления из документов.
https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-social-idp.html
Я реализовал необходимые шаги, а затем сгенерировал URL для запуска размещенного входа в систему.
https://<your_user_pool_domain>/login?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com
Это перенаправило меня на Facebook, а затем перенаправило обратно на мой сайт, как и ожидалось, с кодом в URL.
https://<mysite>/browse?code=1bfabc0e-f4cd-4889-8811-eaaa71rf6e35#_=_
Я не могу найти никакой документации о том, как я обмениваю этот код на JWT, используя библиотеку ampify.
https://aws-amplify.github.io/amplify-js/media/angular_guide
Я реализовал базовый вход в Cognito, используя Authenticaor
<amplify-authenticator></amplify-authenticator>
И когда пароль и имя пользователя отправлены, я вижу в ответе http возвращаемые accessToken и idToken.
Auth.signIn(username, password)
.then(user => console.log(user))
.catch(err => console.log(err));
Я попытался просмотреть методы AmplifyService и Auth, но не могу найти ничего, что позволило бы мне предоставить код вместо имени пользователя и пароля.
заранее спасибо
1 ответ
- Вы можете использовать https://github.com/zyra/ngx-facebook для получения
accessToken
вместоcode
, - Ты можешь отправить
accessToken
API, чтобы изменить его на долгоживущий (60 дней) токен:
public function grantFacebookAccess(Request $request Facebook $fb) { $accessToken = $request->get('accessToken'); $oAuth2Client = $fb->getOAuth2Client(); $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); $params = "first_name,last_name,age_range,gender"; $user = $fb->get('/me?fields='.$params, $longLivedAccessToken)->getGraphUser(); print_r($user); }
Класс Facebook от facebook/graph-sdk
(проверьте это: https://quantizd.com/facebook-php-sdk-with-laravel/)