使用VueJs SDK。
我的重定向URL是example.com/callback,在路由内部,我具有回调组件,该组件将用户数据发送到后端,并检查用户是否存在并登录用户,否则创建新用户并从我们的后端应用程序获取jwt。 / p>
接下来是问题,在创建/挂载的周期内,我无法访问auth0Client,因此无法找到用户属性。
this.$auth.auth0Client
我必须做这个黑客
const interval = setInterval(async () => {
count++;
if (this.$auth.auth0Client) {
clearInterval(interval);
let loggedUser = await this.$auth.auth0Client.getUser();
if(loggedUser) {
const email = loggedUser.email;
const name = loggedUser.name;
try {
//backend logic
} catch(e) {
console.log(e)
}
}
} else {
if (count > 80) {
clearInterval(interval);
}
}
}, 100)
我的问题/问题是如何更好地处理此问题,因为这似乎不太合乎逻辑且很好。 我想将经过身份验证的用户数据发送到我们的后端,然后在那里做其余的事情,
Auth0似乎缺少此类用例的详细信息
谢谢
答案 0 :(得分:1)
我通过使用Vue事件系统解决了自己的问题
this.auth0Client = await createAuth0Client({
domain: options.domain,
client_id: options.clientId,
audience: options.audience,
redirect_uri: redirectUri,
responseType: 'token'
});
this.$eventBus.$emit('auth0Client',this.auth0Client) // creating event here after auth0Client
在回调组件中处理
this.$eventBus.$on('auth0Client', async (auth0Client) => {
//logic here
})
别忘了在主js中注册事件总线
Vue.prototype.$eventBus = new Vue();
希望这会有所帮助