如何使用 Auth0 Lock 从响应对象中获取用户名?

Posted

技术标签:

【中文标题】如何使用 Auth0 Lock 从响应对象中获取用户名?【英文标题】:How to get a username from response object using Auth0 Lock? 【发布时间】:2019-09-11 17:23:10 【问题描述】:

问题是如何从响应对象中获取我用来登录的用户名?

我正在通过以下代码创建 Auth0Lock 实例:

this._lock = new Auth0Lock(AUTH_CONFIG.clientId, AUTH_CONFIG.domain, AUTH_CONFIG.options);

然后我订阅“已验证”事件:

this._lock.on('authenticated', authResult => 
  this._lock.getUserInfo(authResult.accessToken, function(error, profile) 

        console.log('profile', profile); // --> undefined

        if (error) 
          // Handle error
        

  );
)

我正在使用以下凭据登录:

用户名:john@gmail.com 密码:123456

我希望能够在 authResult 对象的某处看到“用户名:john@gmail.com”。 但很遗憾我没有看到。

我应该在 Auth0lock 选项中添加一些东西吗?

附:我在“已验证”事件的处理程序中添加了以下代码,但它返回未定义的配置文件。

【问题讨论】:

查看文档的第 2 步:auth0.com/docs/libraries/lock/v11 当我调用 this.getUserInfo(authResult.accessToken, function(error, profile) console.log('profile', profile) ) 我收到错误:Uncaught TypeError: _this2 .getUserInfo 不是函数 【参考方案1】:

我刚刚将 scope: 'openid' 添加到选项的“auth”属性中

options: 
  ...
  auth: 
    ...
    scope: 'openid'  <---
  

【讨论】:

以上是关于如何使用 Auth0 Lock 从响应对象中获取用户名?的主要内容,如果未能解决你的问题,请参考以下文章

用户注册后获取 auth0 用户信息

在 Android 的 Auth0 Lock 中获取 403 不允许的用户代理

如何使用 HashLocationStrategy 和 Auth0 Lock 小部件进行用户登录

登录 Auth0 后找不到如何获取访问令牌

如何在使用 auth0 进行身份验证的反应应用程序中获取用户信息

如何在 getServerSideProps 中获取 Auth0 用户对象?