将Auth0用户信息存储到Angular2 +服务中

时间:2018-06-06 10:22:10

标签: angular auth0

我目前正在使用Auth0身份验证迁移现有的Angular2 +代码。 我必须放弃Lock小部件才能使用通用登录。

以下是使用Auth0.js的新服务示例:

  public infosUtilisateur: any = undefined;

  public RafraichirInfosUtilisateur()
  {
    let accessToken = localStorage.getItem('access_token');

    if(accessToken && !this.infosUtilisateur)
    {
      this.webAuth.client.userInfo(accessToken, function(err, user) 
      {
        this.infosUtilisateur = user; // Here goes the pain
      });
    }
  }

每当调用我的函数时,我都会收到此错误:

Cannot set property 'infosUtilisateur' of undefined

我不明白为什么我无法在API调用中访问我的服务属性。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

使用不含callback function关键字的function并使用=>内容。这保留了调用上下文。

if(accessToken && !this.infosUtilisateur)
{
  this.webAuth.client.userInfo(accessToken, (err, user) =>  
  {
    this.infosUtilisateur = user; // Here goes the pain
  });
}