Cognito Facebook社交登录与Angular 6:如何使用返回的代码在amplify Auth中对用户进行身份验证

Cognito Facebook社交登录与Angular 6:如何使用返回的代码在amplify Auth中对用户进行身份验证,angular,amazon-cognito,aws-amplify,Angular,Amazon Cognito,Aws Amplify,我有一个angular 6应用程序,正在尝试将social signin(facebook)配置为amplify from the docs 我实现了所需的步骤,然后生成了触发托管登录的url https:///login?response_type=code&client_id=&redirect_uri=https://www.example.com 这将我重定向到facebook,然后用url中的代码按预期重定向回我的站点 https:///browse?code=1bfabc0e-f4

我有一个angular 6应用程序,正在尝试将social signin(facebook)配置为amplify from the docs

我实现了所需的步骤,然后生成了触发托管登录的url

https:///login?response_type=code&client_id=&redirect_uri=https://www.example.com

这将我重定向到facebook,然后用url中的代码按预期重定向回我的站点

https:///browse?code=1bfabc0e-f4cd-4889-8811-eaaa71rf6e35#=

我找不到任何关于如何使用amplify库将代码交换为JWT的文档

我已经使用验证器实现了基本的cognito登录

当提交密码和用户名时,我可以在http响应中看到返回的accessToken和idToken

Auth.signIn(username, password)
.then(user => console.log(user))
.catch(err => console.log(err));
我已经试着查看了AmplificService和Auth方法,但找不到任何允许我提交代码而不是用户名和密码的方法

提前谢谢

  • 您可以使用来获取
    accessToken
    ,而不是
    code
  • 您可以向API发送
    accessToken
    以将其更改为长寿命(60天)令牌:

  • Facebook类来自
    Facebook/graph sdk
    (检查此项:)

    我知道我有点晚了,但您可以在这里看到:在允许的OAuth流下
    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);
    }