TLSLoginHelper.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. //
  2. // TLSLoginHelper.h
  3. // WTLoginSDK64ForIOS
  4. //
  5. // Created by givonchen on 15-5-20.
  6. //
  7. //
  8. #ifndef TLSSDK_TLSLoginHelper_h
  9. #define TLSSDK_TLSLoginHelper_h
  10. #import <Foundation/Foundation.h>
  11. #include <AvailabilityMacros.h>
  12. #import "TLSErrInfo.h"
  13. #import "TLSUserInfo.h"
  14. #import "TLSPwdLoginListener.h"
  15. #import "TLSSmsLoginListener.h"
  16. #import "TLSRefreshTicketListener.h"
  17. #import "TLSExchangeTicketListener.h"
  18. #import "TLSGuestLoginListener.h"
  19. /// 登录类
  20. DEPRECATED_ATTRIBUTE
  21. @interface TLSLoginHelper : NSObject
  22. {
  23. #if __has_feature(objc_arc_weak)
  24. id __weak defaultDeleaget;
  25. #elif __has_feature(objc_arc)
  26. id __unsafe_unretained defaultDeleaget;
  27. #else
  28. id defaultDeleaget;
  29. #endif
  30. uint32_t dwFailedCount;
  31. }
  32. @property (readonly) uint32_t dwFailedCount;
  33. /**
  34. * @brief 获取TLSLoginHelper 实例
  35. *
  36. * @return 返回TLSLoginHelper 实例
  37. */
  38. +(TLSLoginHelper *) getInstance;
  39. /**
  40. * @brief 初始化TLSLoginHelper 实例
  41. *
  42. * @param sdkAppid - 用于TLS SDK的appid
  43. * @param accountType - 账号类型
  44. * @param appVer - app 版本号,格式为 x.x.x.x, 例如,客户端版本为1.1,传入参数为 @"1.1.0.0"
  45. *
  46. * @return 返回TLSLoginHelper 实例
  47. */
  48. -(TLSLoginHelper *) init:(int)sdkAppid
  49. andAccountType:(int)accountType
  50. andAppVer:(NSString *)appVer;
  51. -(void) setTest;
  52. /**
  53. * 设置请求超时时间,默认为10000毫秒。
  54. * sdk与后台交互时,如果超时,会重试5次,所以不应设置太大的值
  55. *
  56. * @param timeout - 超时时间(单位毫秒)
  57. */
  58. -(void) setTimeOut:(int)timeout;
  59. /**
  60. * 设置语言类型(支持国际化)
  61. * 目前有以下类型供选择:
  62. * 2052:简体中文;1028:繁体中文;1033:英文; 1041: 日语; 1036: 法语
  63. *
  64. * @param localid - 语言类型
  65. */
  66. -(void) setLocalId:(int)localid;
  67. /**
  68. * 打印调试日志
  69. *
  70. * @param show - 是否输出日志到logcat
  71. */
  72. -(void) setLogcat:(BOOL)show;
  73. /**
  74. * 获取TLS SDK的版本信息
  75. *
  76. * @return SDK的版本信息
  77. */
  78. -(NSString *) getSDKVersion;
  79. /**
  80. * 获取guid
  81. *
  82. * @return guid
  83. */
  84. -(NSData *) getGUID;
  85. /**
  86. * 获取登录过当前app的帐号列表
  87. *
  88. * @return 账号列表信息 TLSUserInfo数组
  89. */
  90. -(NSArray *) getAllUserInfo;
  91. /**
  92. * 获取最后一次登录记录
  93. *
  94. * @return 账号信息
  95. */
  96. -(TLSUserInfo *) getLastUserInfo;
  97. /**
  98. * 清除用户登录数据
  99. *
  100. * @param identifier - 用户手机号码
  101. * @param deleteAccount - 是否将identifier从历史登录账号列表中删除 NO表示不删除 YES表示删除
  102. *
  103. * @return ture
  104. */
  105. -(BOOL) clearUserInfo:(NSString *)identifier withOption:(BOOL)deleteAccount;
  106. /**
  107. * 判断是否需要用户登录(输入密码或者短信验证)
  108. *
  109. * @param identifier - 用户帐号
  110. *
  111. * @return true:需要用户登录;false:本地已有登录态,无需登录,可直接换票
  112. */
  113. -(BOOL) needLogin:(NSString *)identifier;
  114. /**
  115. * 获取本地保存的SSO票据
  116. *
  117. * @param identifier - 用户手机号码
  118. *
  119. * @return {"A2": xxx, "A2Key": xxx, "D2": xxx, "D2Key": xxx, "tinyID":xxx}
  120. * 除了tinyID是NSString外,其他的都是NSData类型
  121. */
  122. -(NSDictionary*) getSSOTicket:(NSString *)identifier;
  123. /**
  124. * 获取本地保存TLS票据
  125. *
  126. * @param identifier - 用户手机号码
  127. *
  128. * @return json webtoken
  129. */
  130. -(NSString*) getTLSUserSig:(NSString *)identifier;
  131. /**
  132. * 密码登录,获取票据
  133. *
  134. * @param identifier - 用户账号
  135. * @param password - 用户密码
  136. * @param listener - TLSPwdLoginListener 回调对象
  137. *
  138. * @return 0表示调用成功;其它表示调用失败
  139. */
  140. -(int) TLSPwdLogin:(NSString *)identifier andPassword:(NSString *)password andTLSPwdLoginListener:(id)listener;
  141. /**
  142. * 刷新图片验证码
  143. *
  144. * @param listener - TLSPwdLoginListener 回调对象
  145. *
  146. * @return 0表示调用成功;其它表示调用失败
  147. */
  148. -(int) TLSPwdLoginReaskImgCode:(id)listener;
  149. /**
  150. * 验证图片验证码,如果验证成功则登录成功,否则要重新验证
  151. *
  152. * @param imgCode - 用户账号
  153. * @param listener - TLSPwdLoginListener 回调对象
  154. *
  155. * @return 0表示调用成功;其它表示调用失败
  156. */
  157. -(int) TLSPwdLoginVerifyImgCode:(NSString *)imgCode andTLSPwdLoginListener:(id)listener;
  158. /**
  159. * 换票,刷新票据
  160. *
  161. * @param identifier - 用户账号
  162. * @param listener - TLSRefreshTicketListener 回调对象
  163. *
  164. * @return 0表示调用成功;其它表示调用失败
  165. */
  166. -(int) TLSRefreshTicket:(NSString *)identifier andTLSRefreshTicketListener:(id) listener;
  167. /**************************************以下是短信登录相关的接口************************************/
  168. /**
  169. * 短信登录,手机号验证
  170. *
  171. * @param mobile - 用户手机号码
  172. * @param listener - TLSSmsLoginListener 回调对象
  173. *
  174. * @return 0表示调用成功;其它表示调用失败
  175. */
  176. -(int) TLSSmsAskCode:(NSString *)mobile andTLSSmsLoginListener:(id)listener;
  177. /**
  178. * 短信登录,刷新短信验证码
  179. * 注意:一定是TLSSmsAskCode调用成功了,但是没有收到验证码,才可以调用此接口,否则可能会报错
  180. *
  181. * @param mobile - 用户手机号码
  182. * @param listener - TLSSmsLoginListener 回调对象
  183. *
  184. * @return 0表示调用成功;其它表示调用失败
  185. */
  186. -(int) TLSSmsReaskCode:(NSString *)mobile andTLSSmsLoginListener:(id)listener;
  187. /**
  188. * 短信登录,验证短信验证码
  189. *
  190. * @param mobile - 用户手机号码
  191. * @param code - 验证码
  192. * @param listener - TLSSmsLoginListener 回调对象
  193. *
  194. * @return 0表示调用成功;其它表示调用失败
  195. */
  196. -(int) TLSSmsVerifyCode:(NSString *)mobile andCode:(NSString *)code andTLSSmsLoginListener:(id)listener;
  197. /**
  198. * 短信登录,获取票据
  199. *
  200. * @param mobile - 用户手机号码
  201. * @param listener - TLSSmsLoginListener 回调对象
  202. *
  203. * @return 0表示调用成功;其它表示调用失败
  204. */
  205. -(int) TLSSmsLogin:(NSString *)mobile andTLSSmsLoginListener:(id)listener;
  206. /**
  207. * 独立模式下换票 usersig换取A2、D2等票据
  208. *
  209. * @param sdkappid 业务在TLS申请账号集成时得到的appid
  210. * @param accountType 账号对应的accountType
  211. * @param identifier 帐号名
  212. * @param appidAt3rd 第三方帐号的appid,可选参数,没有请传入nil
  213. * @param userSig 业务后台生成的TLS用户票据
  214. * @param listener 处理回调 需要实现TLSExchangeTicketListener协议
  215. * 在本接口的成功回调时通过getSSOTicket接口获取A2、D2等票据
  216. * @return 0表示成功;其他表示调用失败
  217. */
  218. -(int)TLSExchangeTicket:(uint32_t)sdkappid andAccountType:(uint32_t)accountType andIdentifier:(NSString *)identifier andAppidAt3rd:(NSString *)appidAt3rd andUserSig:(NSString *)userSig andTLSExchangeTicketListener:(id)listener;
  219. /**
  220. * 登录匿名账号,无需注册直接登录,在不清数据的情况下会登录上次登录的匿名账号
  221. * @param listener 处理回调 需要实现TLSGuestLoginListener协议
  222. * @return 0表示成功;其他表示调用失败
  223. */
  224. -(int)TLSGuestLogin:(id<TLSGuestLoginListener>)listener;
  225. /**
  226. * 获取本地匿名账号
  227. * @return 匿名账号的userinfo,若没有则返回nil
  228. */
  229. -(TLSUserInfo*)getGuestIdentifier;
  230. @end
  231. #endif