
# 登录
登录分为账号密码鉴权登录和App ID鉴权登录。
#### login:password:
**接口描述**
该接口用于通过账号密码鉴权登录。
**注意事项**
1. 创建会议，被邀入会等功能只有在登录后才能使用，若不登录，将无法体验完整会议功能。
2. 回调error表示错误信息，nil表示成功。
**方法定义**
```
- (void)login:( NSString * _Nonnull )account password:( NSString * _Nonnull )password callback:(_Nonnull HWMSDKLoginCompleteHandler)callback;
```
**参数描述**
表1参数说明 
| 参数       | 是否必须 | 类型                         | 描述                     |
|:---|:---|:---|:---|
| account  | 是    | NSString \*                | 登录账号                   |
| password | 是    | NSString \*                | 登录密码                   |
| callback | 否    | HWMSDKLoginCompleteHandler | 参数Error表示错误信息，nil表示成功。 |
   
**返回值**
 表2登录返回HWMLoginResult 
| 参数           | 类型          | 描述           |
|:---|:---|:---|
| userUuid     | NSString \* | 账号uuid       |
| account      | NSString \* | 登录账号         |
| thirdAccount | NSString \* | appid登录的三方账号 |
   
**示例代码**
```
/// 登录处理
/// 认证鉴权用的账号密码建议在配置文件或者环境变量中密文存放，使用时解密，确保安全
- (void)login {
    NSString *account = @"******";
    NSString *password = getPassword();
    [[HWMSdk getOpenApi] login:account password:password callback:^(NSError * _Nullable error, HWMLoginResult * _Nullable result) {
        if (error == nil) {
            NSLog(@"登录成功");
        }else{
            NSLog(@"登录失败"); 
        }
    }];
}
```
#### login:
**接口描述**
该接口用于通过App ID鉴权登录。
**注意事项**
1. 创建会议，被邀入会等功能只有在登录后才能使用，若不登录，将无法体验完整会议功能。
2. 回调error表示错误信息，nil表示成功。
**方法定义**
```
- (void)login:(HWMAppIDLoginParam *)appidInfo callback:(HWMSDKLoginCompleteHandler)callback;
```
**参数描述**
表3HWMAppIDLoginParam参数说明 
| 参数          | 是否必须 | 类型          | 描述                                |
|:---|:---|:---|:---|
| signature   | 是    | NSString \* | 从第三方服务端获取的鉴权签名信息                  |
| thirdUserId | 是    | NSString \* | 第三方用户的账号                          |
| expireTime  | 是    | NSInteger   | signature 过期时间，单位为秒的时间戳，为0时表示不会过期 |
| nonce       | 是    | NSString \* | 随机数                               |
| userName    | 否    | NSString \* | 用户名                               |
| userEmail   | 否    | NSString \* | 邮箱                                |
| userPhone   | 否    | NSString \* | 手机号                               |
| corpId      | 否    | NSString \* | SP下有多个企业的时候需要传入corpId             |
| deptCode    | 否    | NSString \* | 部门编码                              |
   
**返回值**
参考：[表登录返回HWMLoginResult]
**示例代码**
```
/// AppId 登录接口
- (void)login {
    HWMAppIDLoginParam *appidInfo = [[HWMAppIDLoginParam alloc] init];
    appidInfo.thirdUserId = getThirdUserId();
    appidInfo.expireTime = 1599618620;
    appidInfo.nonce      = getNonce();
    appidInfo.userName   = getUserName();
    appidInfo.signature  = getSignature();
    [[HWMSdk getOpenApi] login:appidInfo callback:^(NSError * _Nullable error, HWMLoginResult * _Nullable result) {
        if (error == nil) {
            NSLog(@"登录成功");
        }else{
            NSLog(@"登录失败");
        }
    }];
}
```
