She*_*ims 10 federated-identity amazon-cognito expo
通过用户名和密码或使用“aws-amplify”中的 { Auth } 联合身份可以轻松登录 AWS Cognito 会话
Auth.signIn({ username: email, password: password})
Run Code Online (Sandbox Code Playgroud)
或者
Auth.federatedSignIn({ provider: 'Google' }); // or 'SignInWithApple' || 'Facebook'
Run Code Online (Sandbox Code Playgroud)
通过以下方式可以轻松退出 Cognito 会话
Auth.signOut();
Run Code Online (Sandbox Code Playgroud)
可能值得注意的是,我们使用 expo-web-browser 来启动应用内浏览器会话,而不是定向到外部 safari/chrome 窗口。
问题是 Auth.signOut() 调用不会撤销 Google/Apple/Facebook 会话中的令牌,因此每当Auth.federatedSignIn({ provider: 'Google' });再次调用时,用户已经登录。
这是次优的,因为这意味着如果用户通过 Google / Facebook / Apple 登录,他们将无法使用不同的 Google / Facebook / Apple 帐户登录。它还使得调试联合提供商首次登录时发生的问题变得非常困难,因为它不允许测试人员更改帐户。
有没有人在最新版本的 Expo 中找到有效的解决方案?(截至撰写本文时为 35)
这是一个类似的问题,没有答案并且没有提供很多背景信息
本文档建议致电
GET https://mydomain.auth.{region}.amazoncognito.com/logout?
client_id={CLIENT_ID}&
logout_uri=https://myclient/logout
Run Code Online (Sandbox Code Playgroud)
但我在调用时没有在我的应用程序中使用此方法
fetch('https://{MY_DOMAIN}.auth.us-west-2.amazoncognito.com/logout?client_id={CLIENT_ID}&redirect_uri=exp://127.0.0.1:19000&response_type=code', {
method: 'GET',
//Request Type
})
Run Code Online (Sandbox Code Playgroud)
从我的注销按钮
这个线程提到他们正在考虑为 expo-web-browser 包添加一个清晰的 cookie,但看起来并没有通过代码审查。
值得注意的是,即使在开发服务器上运行expo r -c联合身份验证身份 cookie,您仍然可以在无需登录的情况下完成操作。
关于如何清除 Cognito 所查看的 Google/Facebook/Apple 联合登录会话有什么建议吗?
| 归档时间: |
|
| 查看次数: |
1742 次 |
| 最近记录: |