Я хотел бы получить другую информацию от Okta, потому что с this.props.auth.getUser() я буду получать только электронную почту, имя и фамилию о пользователе. Но есть много данных об Okta, например, штат, город, улица, почтовый индекс и так далее.
Я создаю веб-приложение с ReactJS и Node express, а вход в систему управляется Okta (https://developer.okta.com/), затем я хотел бы сохранить информацию Okta о пользователях в базе данных.
async checkAuthentication() {
const authenticated = await this.props.auth.isAuthenticated();
if (authenticated !== this.state.authenticated) {
const user = await this.props.auth.getUser();
console.info(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",



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам нужно указать, что вы хотите в качестве области действия. Okta имеет следующие области действия по умолчанию: offline_access, телефон, адрес, электронная почта, профиль, openid. В конфигурации вы можете использовать эти документы https://developer.okta.com/authentication-guide/implementing-authentication/.
auth.getUser () возвращает сведения, доступные в конечной точке / userinfo на сервере авторизации, через который пользователь прошел аутентификацию и авторизацию, как описано здесь.
Если вы хотите опубликовать и другие сведения об этой / конечной точке, выполните следующие действия:
Используя функцию getUser () из okta, у меня есть только эта информация:
email: "[email protected]" email_verified: true family_name: "xxxxxx" given_name: "Fabio" locale: "IT" name: "Fabio xxxxx" preferred_username: "[email protected]" sub: "xxxxxxxxx" updated_at: 1547719125 zoneinfo: ""