Flutter集成AWS Cognito谷歌认证:redirect_uri参数配置疑问
关于AWS Cognito谷歌认证中redirect_uri参数的填写说明
我来给你捋清楚这个问题的核心:redirect_uri的值必须和你在AWS Cognito控制台中配置的「回调URL」完全一致,包括路径部分,一字不差。下面给你一步步拆解怎么做:
1. 先在AWS Cognito里配置正确的回调URL
这是最关键的一步,没配置或者配置不匹配的话,后续请求肯定会失败:
- 打开AWS Cognito控制台,找到你正在使用的用户池
- 切换到「应用客户端」选项卡,找到对应你的Flutter应用的客户端条目
- 在「回调URLs」(Callback URLs)输入框里,添加自定义Scheme链接,比如
myapp://cognito-callback或者myapp://auth/google这类格式(只要符合自定义URL Scheme规则就行) - 同时要确认「允许的OAuth流」里已经勾选了「授权码流」(Authorization code grant)——毕竟你用的是
grant_type=authorization_code的请求方式
2. 在token请求中使用完全匹配的redirect_uri
假设你在Cognito里配置的回调URL是myapp://cognito-callback,那你的POST请求参数里的redirect_uri就必须填这个值,比如:
https://${COGNITO_POOL_URL}.amazoncognito.com/oauth2/token?grant_type=authorization_code&client_id=${COGNITO_CLIENT_ID}&code=authCode&redirect_uri=myapp://cognito-callback
3. 额外注意:Flutter应用的自定义Scheme配置
为了让你的Flutter应用能捕获到myapp://开头的重定向链接,还需要在iOS和Android的配置文件里做对应设置:
- iOS:在
Info.plist中添加CFBundleURLTypes配置,指定scheme为myapp - Android:在
AndroidManifest.xml中对应Activity的里,添加对 myappscheme的支持
常见避坑点
- 大小写严格一致:比如你配置的是
myapp://CognitoCallback,请求里写成myapp://cognitocallback就会被Cognito拒绝 - 不要多/少斜杠:比如配置的是
myapp://callback,请求里写成myapp://callback/(末尾多了斜杠)也不行 - 必须确保这个redirect_uri在Cognito应用客户端的「回调URLs」列表里,否则Cognito会直接返回错误
内容的提问来源于stack exchange,提问作者Andro
相关产品推荐
相关产品推荐

