首页 > 解决方案 > 如何获取和更新用户属性 AWS amplify angular 6

问题描述

注册到应用程序后如何更改 Cognito 用户的属性?应该使用什么 API 来获取用户的详细信息,例如名字、姓氏等?应该使用什么 API 来更新用户详细信息?

标签: angularamazon-web-servicesauthenticationamazon-cognitoaws-amplify

解决方案


获取用户的详细信息,只需使用this.amplifyService.auth().currentAuthenticatedUser()和检索user.attributes字段。

/**
 * Get current authenticated user
 * @return - A promise resolves to curret authenticated CognitoUser if success
 */
currentAuthenticatedUser(): Promise<CognitoUser | any>;

更新属性,请使用updateUserAttributes方法。

/**
 * Update an authenticated users' attributes
 * @param {CognitoUser} - The currently logged in user object
 * @return {Promise}
 **/
updateUserAttributes(user: CognitoUser | any, attributes: object): Promise<string>;

如果您需要检索CognitoUser,可以按照文档的Change password示例进行操作:

import { Auth } from 'aws-amplify';

Auth.currentAuthenticatedUser()
    .then(user => {
        return Auth.changePassword(user, 'oldPassword', 'newPassword');
    })
    .then(data => console.log(data))
    .catch(err => console.log(err));

推荐阅读