我是auth0和Angular 2的初学者。我试图在我的应用上使用Auth0进行身份验证和授权。 我用于初始化身份验证的代码
@Injectable()
export class Auth {
//Configure Auth0
lock = new Auth0Lock('CLIENT_ID','<myapp>.eu.auth0.com', {
auth: {
params: {
scope: 'openid profile user_metadata app_metadata',
audience: 'https://<myapp>.eu.auth0.com/api/v2/'
}
}
});
userProfile;
constructor(private router: Router) {
this.userProfile = JSON.parse(localStorage.getItem("profile"));
// Add callback for lock `authenticated` event
this.lock.on("authenticated", (authResult) => {
localStorage.setItem('id_token', authResult.accessToken);
console.log(authResult);
this.lock.getUserInfo(authResult.accessToken, (error, profile) => {
if (error) {
console.log("Error:", error);
return;
}
localStorage.setItem("profile", JSON.stringify(profile));
this.userProfile = profile;
});
});
}
当我记录配置文件时,我无法在配置文件json中看到app_metadata,而且我也无法在JWT令牌中看到它。
数组[5] 0:&#34;子&#34; 1:&#34;名称&#34; 2:&#34;昵称&#34; 3:&#34;图像&#34; 4:&#34;的updated_at&#34;
我需要它来从用户个人资料中获取角色。
首先,我使用了getProfile方法,该方法返回了正确的元数据,但我读到它将被弃用,所以我用getUserInfo替换它,但它以不同的方式工作。
我注意到如果我删除了audience参数,authResult包含app_metadata信息,比如角色,但我收到了#34; JWT必须有3个部分&#34;来自控制台的错误。
我错过了一些关于它是如何工作的东西。
拜托,有人可以帮帮我吗? 感谢。