
# 账号密码方式登录
```
HWMSdk.getOpenApi.login(LoginParam,HwmCallback）
```
**接口描述**
该接口用于登录和鉴权。
**注意事项**
除匿名入会外，在使用其他业务之前必须进行成功登录。
![](https://support.huaweicloud.com/sdkreference-meeting/public_sys-resources/note_3.0-zh-cn.png)
登录成功以后会发送登录成功事件onSuccess回调。
**方法定义**
```
/**
     * 登录接口
     * @param LoginParam 登录配置对象
     * @param hwmCallback 登录结果回调
     */
void login(LoginParam loginParam, HwmCallback<LoginResult> hwmCallback)
```
**参数描述**
表1参数说明 
| 参数          | 是否必须 | 类型                         | 描述     |
|:---|:---|:---|:---|
| loginParam  | 是    | LoginParam                 | 登录配置对象 |
| hwmCallback | 是    | HwmCallback\<LoginResult\> | 回调处理对象 |
   
**返回值**
无。
**参数拓展**
表2LoginParam参数说明 
| 参数       | 是否必须 | 类型     | 描述  |
|:---|:---|:---|:---|
| account  | 是    | String | 用户名 |
| password | 是    | String | 密码  |
| nickName | 否    | String | 昵称  |
   
 表3LoginResult类型说明 
| 参数           | 类型      | 描述                                                               |
|:---|:---|:---|
| userUuid     | String  | 用户uuid，由系统分配的真实的唯一用户标识。                                          |
| account      | String  | 登录账号                                                             |
| thirdAccount | String  | 第三方登录账号（AppId登录场景）                                               |
| isFreeUser   | boolean | 是否为免费用户                                                          |
| refreshToken | String  | 刷新token                                                          |
| siteDomain   | String  | 登录域名。只适用于站点切换场景，当用户选择了国际站点，却使用国内账号登录时，会自动切换到国内站点登录，并返回国内站点的域名信息。 |
   
**示例代码**
```
//认证鉴权用的账号密码建议在配置文件或者环境变量中密文存放，使用时解密，确保安全
LoginParam loginParam = new LoginParam()        
    .setLoginAuthType(LoginAuthType.Account_And_Password)       //登录方式的类别     
    .setAccount(getAccount())        //登录账号
    .setPassword(getPassword());      //登录密码
     
HWMSdk.getOpenApi(getActivity()).login(loginParam, new HwmCallback<LoginResult>() {             
     @Override             
     public void onSuccess(LoginResult loginResult) {  //登录成功回调                              
         if (loginResult != null ) {                     
             Log.i(TAG, "登录成功" + loginResult.getUserUuid());                 
         }
     }              
     @Override             
     public void onFailed(int retCode, String desc) {   //失败回调              
        Error error = HWMBizSdk.getLoginApi().convertErrorCodeToUI(retCode);                 
        String errorTip = getLoginErrTips(error);               //根据返回的错误值，输出错误原因         
        Log.e(TAG, errorTip);     
     }        
});
```
