javascript - AWS Amplify React UI 组件 - 如何调度身份验证状态更改事件?

标签 javascript aws-amplify

我的应用程序使用 AWS Amplify React UI 组件 (@aws-amplify/ui-react) 来处理用户流,我需要知道用户何时成功登录。

我在下面添加了 handleAuthStateChange 属性。这有效,我可以接收新状态,但是它会阻止应用导航到其他 AmplifyAuthenticator 插槽,例如注册和忘记密码。

<AmplifySignIn
    slot="sign-in"
    handleAuthStateChange={(state, data) => {
        // handle state === 'signedin' but pass along other states
    }}
></AmplifySignIn>

有人知道如何在不破坏其他 AmplifyAuthenticator 插槽的情况下获得有关身份验证状态更改的通知吗?

最佳答案

您可以将其添加到 AmplifyAuthenticator 组件中。

<AmplifyAuthenticator 
    handleAuthStateChange={(state, data) => {
        console.log(state)
        console.log(data)
        //add your logic
    }}
>
    <AmplifySignIn
         slot="sign-in"
    >
    </AmplifySignIn>
</AmplifyAuthenticator>

或者您可以使用访问其他组件中的身份验证状态更改

import { onAuthUIStateChange } from '@aws-amplify/ui-components'

useEffect(() => {
    return onAuthUIStateChange((state, data) => {
        console.log(state);
        console.log(data);
        //add your logic
    });
}, []);

希望这有帮助

关于javascript - AWS Amplify React UI 组件 - 如何调度身份验证状态更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61822491/

相关文章:

node.js - 浏览器返回 403 访问错误,可能由 AWS 引起

node.js - 使用 AWS Amplify 创建 process.env 变量?

javascript - 你能帮忙分析一下这个模式吗?

javascript - 如何避免在 php 表单提交中重新加载页面

javascript - jQuery 函数实现和函数调用?

angular - 类型 'subscribe' 上不存在属性 'Promise<GraphQLResult> | Observable<object>'

javascript - 如何在angularjs中查找最后一个字母的字符串?

javascript - Socket.io 中的 `.acks` key 是什么

amazon-web-services - 如何从客户端强制刷新认知 token

reactjs - AWS AppSync react : how to work with "complex" GraphQL schema?