amazon-web-services - flutter_facebook_login 和 AWS:登录令牌无效。不是有效的 OpenId Connect 身份令牌
问题描述
我是 Flutter 和 AWS 的新手,我用 facebook 身份验证做了一个小项目。使用:
- amazon_cognito_identity_dart:^0.0.22
- flutter_facebook_login: ^3.0.0
在 AWS I 上:
- 使用 POST 方法配置 API
- 创建了一个新的 Cognito 用户池
- 在新的 Cognito 用户池中创建了一个新的应用程序客户端
- 使用 Facebook 的 Facebook AppID 创建了一个新的 Cognito 身份池
我有登录功能
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_cognito_identity_dart_2: ^0.1.19
并使用该方法
await _cognitoCredentials.getAwsCredentials(_token, 'graph.facebook.com');
推荐阅读
- linux - 我们如何使用 sed 命令将 \n 写入文件?
- java - 如何修复多线程应用程序数组中的 NullPointerException
- .net - Bot builder : 如何在 SPFx 中启用我的 Bot 以在连接后识别用户
- listview - UWP ListView x:Bind SelectionMode StackoOverflowException
- java - 使用 Java 客户端进行单点登录
- function - OpenLayers 3 Style Function 用于动态特征字体设置
- java - 使用java代码将textview与父级对齐
- python - Python:从子类的类方法中访问类名
- javascript - JS 函数 - 从另一个函数调用时重新加载 iframe 的函数不会刷新
- php - MONGODB - 语法错误,使用 $in 运算符的意外“{”查找方法