Вход в социальную сеть 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 ответ

  1. Вы можете использовать https://github.com/zyra/ngx-facebook для получения accessToken вместо code,
  2. Ты можешь отправить 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/)

Другие вопросы по тегам