Ita*_*mar 5 oauth-2.0 reactjs amazon-cognito react-router-v4 aws-amplify
我有一个使用 ReactJS 的 SPA(单页应用程序)。目前,我允许用户使用 Amplify 控制台通过 AWS Cognito 使用 Facebook 或 Google 登录(我的网站由 S3 上的 Amplify 托管)。
我的问题是,当用户尝试进入需要登录的页面时,他会被重定向到登录页面(使用react-router-dom v4),然后当他们登录时,他们会被重定向到Facebook/Google,然后重定向回我网站的主页。
我想将他们返回到发送他们登录的页面,因为这会给我的用户带来糟糕的用户体验。
我使用的Auth函数是:Auth.federatedSignIn({provider:“Facebook”})。
当会话刷新并且不维护商店时,如何将它们发送回将它们发送到重定向的页面,而不将页面存储在我的商店中?
您可以将页面作为自定义状态传递
Auth.federatedSignIn({provider: 'Google', customState: JSON.stringify(route)})
Run Code Online (Sandbox Code Playgroud)
并在身份验证事件中取回它
Hub.listen('auth', ({payload: {event, data}}) => {
switch (event) {
case 'signIn':
user = data
break
case 'customOAuthState':
route = JSON.parse(data)
// go to route
break;
}
Run Code Online (Sandbox Code Playgroud)
})
| 归档时间: |
|
| 查看次数: |
2168 次 |
| 最近记录: |