auth0 getUserInfo app_metadata问题

时间:2017-02-26 11:14:37

标签: angularjs angular authentication auth0 angular2-jwt

我是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;来自控制台的错误。

我错过了一些关于它是如何工作的东西。

拜托,有人可以帮帮我吗? 感谢。

0 个答案:

没有答案