如何解决无法通过 okta-sdk-nodejs 客户端的 listUsers 方法使用 Search API 获得 OKTA 的 ListUsers 的响应
代码片段:
async getUsersByEmail(value) {
try {
return await Promise.all([
oktaClient.listUsers({
search: value,}),]).then((values) => {
console.log(values);
});
} catch (e) {
throw Error('Cannot get the users: ' + e);
}
}
回复:
[
Collection {
nextUri: "http://test-admin.okta.com/api/v1/users?search=profile.email%20eq%20'test%40gmail.com'%20",client: Client {
requestExecutor: [DefaultRequestExecutor],authorizationMode: 'SSWS',baseUrl: 'http://test-admin.okta.com',apiToken: 'dhdkjaskjassad',http: [Http]
},factory: ModelFactory { Ctor: [class User extends Resource] },currentItems: [],request: undefined
}
]
在尝试使用已经可用的 okta-sdk-nodejs 的 listUsers 方法时,我无法获取响应数组。尽管如此,我在尝试与 Postman 一起运行时使用相同的请求参数得到了正确的响应。
OKTA SDK node.js Link(转到搜索用户部分)
我正在使用以下方法 ->
client.listUsers({
search: 'profile.email eq "test@gmail.com"'
}).each(user => {
console.log('User matches search:',user);
});
解决方法
在对代码稍作更改后,我能够解决此问题。
更新代码:
async getUsersByEmail(query) {
try {
let users = [];
const response = await oktaClient.listUsers({
search: query,});
await response
.each((user) => {
users.push(user);
})
.catch((err) => {
console.log(`Error while getting usersByEmail ` + err);
});
console.log(`Users data: ` + users);
return users;
} catch (e) {
throw Error(`Cannot get usersByEmail: ` + e);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。