首页 > 解决方案 > flutter_facebook_login 和 AWS:登录令牌无效。不是有效的 OpenId Connect 身份令牌

问题描述

我是 Flutter 和 AWS 的新手,我用 facebook 身份验证做了一个小项目。使用:

在 AWS I 上:

我有登录功能

signInFacebook() async {
    final facebookLoginResult = await signInWithFacebook();
    final credentials = new Credentials(
      cognitoIdentityPoolId,
      cognitoUserPoolId,
      cognitoClientId,
      facebookLoginResult.accessToken.token
    );

一个方法signInWithFacebook:

import 'package:flutter_facebook_login/flutter_facebook_login.dart';

Future<FacebookLoginResult> signInWithFacebook() async {
  final facebookLogin = FacebookLogin();
  final facebookLoginResult = await facebookLogin.logIn(['email']);
  return facebookLoginResult;
}

一个类凭证:

import 'package:amazon_cognito_identity_dart/cognito.dart';

class Credentials {
  final CognitoCredentials _cognitoCredentials;
  final String _token;

  Credentials(String identityPoolId, String userPoolId, String clientId, this._token)
      : _cognitoCredentials = new CognitoCredentials(identityPoolId, new CognitoUserPool(userPoolId, clientId));

  Future<CognitoCredentials> get cognitoCredentials async {
    await _cognitoCredentials.getAwsCredentials(_token);
    return _cognitoCredentials;
  }
}

以及带有 Cognito 凭据和 API 端点的 credentials.dart

问题是当它执行该方法时:


    await _cognitoCredentials.getAwsCredentials(_token);

我收到以下错误:

 CognitoClientException{statusCode: 400, code: NotAuthorizedException, name: NotAuthorizedException, message: Invalid login token. Not a valid OpenId Connect identity token.}

为什么我从 facebook 收到的令牌无效?我错过了什么吗?

标签: amazon-web-servicesflutteramazon-cognitoflutter-facebook-login

解决方案


我解决了更新到

  amazon_cognito_identity_dart_2: ^0.1.19

并使用该方法

await _cognitoCredentials.getAwsCredentials(_token, 'graph.facebook.com');

推荐阅读