Javascript 如何从Okta获得除姓名、姓氏和电子邮件以外的用户信息?

Javascript 如何从Okta获得除姓名、姓氏和电子邮件以外的用户信息?,javascript,reactjs,express,crud,okta,Javascript,Reactjs,Express,Crud,Okta,我想从Okta获得其他信息,因为使用this.props.auth.getUser()我只会收到有关用户的电子邮件、姓名。但Okta上有很多数据,例如州、城市、街道地址、邮政编码等 我正在使用ReactJS和Node express创建一个web应用程序,登录由Okta()管理,然后我想将Okta关于用户的信息存储在数据库中 async checkAuthentication() { const authenticated = await this.props.auth.isAuthenti

我想从Okta获得其他信息,因为使用
this.props.auth.getUser()
我只会收到有关用户的电子邮件、姓名。但Okta上有很多数据,例如州、城市、街道地址、邮政编码等

我正在使用ReactJS和Node express创建一个web应用程序,登录由Okta()管理,然后我想将Okta关于用户的信息存储在数据库中

async checkAuthentication() {
  const authenticated = await this.props.auth.isAuthenticated();

  if (authenticated !== this.state.authenticated) {
    const user = await this.props.auth.getUser();

    console.log(this.props.auth);
    this.setState({
      authenticated,
      user
    });
    this.getUsers();
  }
}

async getUsers() {
  let params = "";
  let url = "";

  if (this.state.user != null) {
    params += "EMAIL=" + this.state.user.email;
  }

  url = params == null ? "/user" : "/user?";
  url += params;
  this.state.users = await this.fetch('get', url);

  if (this.state.users && Object.keys(this.state.users).length == 0) {
    this.saveUser();
  }
}

async saveUser() {
  var user = {
    EMAIL: this.state.user.email,
    NAME: this.state.user.given_name,
    SURNAME: this.state.user.family_name,
    //ORGANIZATION: "this.state.user.organization",
    //PHONE = "this.state.user.primaryPhone",
    //STATE = "this.state.user.state",
    //STREET_ADDRESS = "this.state.user.streetAddress",
    //ZIP_CODE = "this.state.user.zipCode",
  };

  await this.fetch('post', '/user', user);
}
这里我想保存Okta的其他数据

//ORGANIZATION: "this.state.user.organization",
//PHONE = "this.state.user.primaryPhone",
//STATE = "this.state.user.state",
//STREET_ADDRESS = "this.state.user.streetAddress",
//ZIP_CODE = "this.state.user.zipCode",

您需要指定您想要的范围。Okta具有以下默认作用域:脱机访问、电话、地址、电子邮件、配置文件、openid。在配置中,您可以使用这些文档

auth。getUser()返回授权服务器上/userinfo endpoint下可用的详细信息,用户通过该文件获得身份验证和授权,如下所述

如果您还希望在此/端点上发布其他详细信息,请执行以下操作:

  • 从Okta租户导航到管理员>>API>>授权服务器>>授权服务器
  • 在“索赔”选项卡下,添加具有用户配置文件值的新索赔,并在“包含在令牌类型中”下,选择“ID令牌”和“Userinfo/ID\U令牌请求”
使用okta中的函数getUser(),我只有以下信息:
电子邮件:fabioxxxxx@xxxxxxx.com已验证的电子邮件:真实的家庭名称:“xxxxxx”给定名称:“Fabio”区域设置:“IT”名称:“Fabio xxxxx”首选用户名:fabioxxxxxx@xxxxxx.com“sub:“xxxxxxxxx”更新地址:1547719125区域信息:”“