我正在Auth0
Lock 11
我的反应应用程序中实施。该应用程序也在使用Redux
和react-router-dom
。
我正在尝试遵循此处的文档,但无法正确初始化Lock
。我也对如何检查用户是否经过身份验证感到困惑。在我使用之前Lock v9
,事情似乎更直观。
我试图实现的一般行为是这样的:
Public
除组件外,所有应用程序都将受到保护- 如果用户尝试访问受保护的部分,我将
Redirect
用户Public
这是我到目前为止所拥有的。这个文件是我保存所有Auth0
代码的地方:
import Auth0Lock from 'auth0-lock';
export default class Auth {
lock = new Auth0Lock('my_client_id', 'mydomain.auth0.com', {
auth: {
audience: 'https://myapi.com',
redirectUrl: 'http://localhost:3000',
responseType: 'token id_token',
params: {
scope: 'openid email profile'
}
}
}
).on('authenticated', function(authResult) {
if (authResult && authResult.accessToken && authResult.idToken) {
this.setSession(authResult);
// use authResult.idTokenPayload for profile information
}
});
setSession(authResult) {
debugger
}
login() {
this.lock.show()
}
}
所以,这是我的问题:
- 我在哪里初始化
Lock
?在App.js
? - 如果用户未通过身份验证,他将被重定向到
Public
组件。我如何访问该login()
功能Public
?我知道我可以简单地在组件中引用它,但是不会重新初始化Lock
吗?