酷店

MtopLoginProtocol.h 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. //
  2. // LoginProtocol.h
  3. // mtopext
  4. //
  5. // 接入mtop登录模块需要实现的接口
  6. //
  7. // Created by 亿刀/禚来强 on 17/11/14.
  8. // Copyright (c) 2016 Taobao. All rights reserved.
  9. //
  10. #import <Foundation/Foundation.h>
  11. /*!
  12. * 手淘 session 字段
  13. */
  14. #define SESSION_KEY_SID @"sid"
  15. #define SESSION_KEY_USER_ID @"userId"
  16. #define SESSION_KEY_NICK @"nick"
  17. #define SESSION_KEY_ECODE @"ecode"
  18. #define SESSION_KEY_LOGIN_TOKEN @"loginToken"
  19. #define SESSION_KEY_SSO_TOKEN @"ssoToken"
  20. #define SESSION_KEY_COOKIE @"cookie"
  21. #define SESSION_KEY_SID_INVALID_TIME @"sidInvalidTime"
  22. #define SESSION_KEY_LOGIN_TIME @"loginTime"
  23. #define SESSION_KEY_COOKIE_SSO_DOMAINS @"cookiesSSODomains"
  24. /*!
  25. * 登录标记
  26. */
  27. typedef enum {
  28. /* 只走AutoLogin,失败什么都不做! */
  29. LoginOptionAutoLoginOnly = 1,
  30. /* 先走AutoLogin,失败再拉登录页面 */
  31. LoginOptionAutoLoginAndManualLogin,
  32. } LoginOption;
  33. /*!
  34. * 登录成功回调
  35. * @param isSuccessful YES表示登录成功(auto login或者manual login),NO表示登录失败(只可能发生在LoginOptionAutoLoginOnly)
  36. * @param loginResult 登录成功的情况下返回的登录结果(包含登录态)
  37. */
  38. typedef void (^LOGIN_COMPLETION_HANDLER) (BOOL isSuccessful, NSDictionary* loginResult);
  39. /*!
  40. * 登录取消回调
  41. * @param flags 用户手动取消登录页面
  42. */
  43. typedef void (^LOGIN_CANCELATION_HANDLER)();
  44. @protocol MtopLoginProtocol <NSObject>
  45. @required
  46. /*!
  47. * 获取单例
  48. */
  49. + (id)sharedInstantce;
  50. /*!
  51. * 判断当前用户是否有登录会话
  52. * @return
  53. * YES 本地有会话且本地判断会话未过期,但服务端可能判定会话无效
  54. * NO 本地无会话或本地判断会话已过期
  55. */
  56. - (BOOL)isValidLogin;
  57. /*
  58. * 触发登录操作
  59. * @param loginOption 登录选项 参看 <code>LoginOption</code>
  60. * @param completionHandler 登录成功后回调
  61. * @param cancelationHandler 登录用户取消后回调
  62. */
  63. - (void)loginWithLoginOption:(LoginOption)loginOption
  64. completionHandler:(LOGIN_COMPLETION_HANDLER)completionHandler
  65. cancelationHandler:(LOGIN_CANCELATION_HANDLER)cancelationHandler;
  66. /*
  67. * 基本同上,一般业务方不要使用此方法,需要使用此方法,请联系@寻弦
  68. * @param extraInfoDict 额外参数
  69. */
  70. - (void)loginWithLoginOption:(LoginOption)loginOption
  71. extraInfo:(NSDictionary *)extraInfoDict
  72. completionHandler:(LOGIN_COMPLETION_HANDLER)completionHandler
  73. cancelationHandler:(LOGIN_CANCELATION_HANDLER)cancelationHandler;
  74. /*!
  75. * 获取当前登录会话信息
  76. * @return
  77. * 会话信息
  78. * sid -> session id (NSString*)
  79. * userId -> 用户id (NSString*)
  80. * ecode -> ecode (NSString*)
  81. * nick -> 用户nick (NSString*)
  82. * loginToken -> 登录令牌 (NSString*)
  83. * ssoToken -> sso令牌 (NSString*)
  84. * topSession -> top授权 (NSString*)
  85. * cookie -> cookie (NSString*)
  86. * ......
  87. */
  88. - (NSDictionary *)currentSession;
  89. //@optional
  90. /*!
  91. * 返回当前LoginCenter是否已经在处理登录行为
  92. * @return YES 已经有在处理中的登录行为
  93. * NO 没有正在处理的登录行为
  94. */
  95. - (BOOL)isProcessingLogin;
  96. //@optional
  97. /*!
  98. * 标识本地session已经失效
  99. */
  100. - (void)markInvalidLogin;
  101. /*!
  102. * 登出
  103. */
  104. - (void)logout;
  105. @end