酷店

MtopAuthProtocol.h 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. //
  2. // MtopAuthProtocol.h
  3. // OpenMtopExt
  4. //
  5. // Created by 亿刀 on 16/7/11.
  6. // Copyright © 2016年 亿刀. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. /*!
  10. * 授权标记
  11. */
  12. typedef enum {
  13. /* 只走AutoAuth,失败什么都不做! */
  14. AuthOptionAutoAuthOnly = 1,
  15. /* 先走AutoAuth,失败再拉授权页面 */
  16. AuthOptionAutoAuthAndManualAuth,
  17. } AuthOption;
  18. /*!
  19. * 授权成功回调
  20. * @param isSuccessful YES表示授权成功(auto auth或者manual auth),NO表示授权失败(只可能发生在authOptionAutoauthOnly)
  21. * @param authResult 授权成功的情况下返回的授权结果(包含授权态)
  22. */
  23. typedef void (^AUTH_COMPLETION_HANDLER) (BOOL isSuccessful, NSDictionary* authResult);
  24. /*!
  25. * 授权取消回调
  26. * @param flags 用户手动取消授权页面
  27. */
  28. typedef void (^AUTH_CANCELATION_HANDLER)();
  29. @protocol MtopAuthProtocol <NSObject>
  30. @required
  31. /*!
  32. * 获取单例
  33. */
  34. + (id)sharedInstantce;
  35. /*!
  36. * 判断当前用户是否有授权会话
  37. * @return
  38. * YES 本地有会话且本地判断会话未过期,但服务端可能判定会话无效
  39. * NO 本地无会话或本地判断会话已过期
  40. */
  41. - (BOOL)isValidAuth;
  42. /*
  43. * 触发授权操作
  44. * @param authOption 授权选项 参看 <code>authOption</code>
  45. * @param completionHandler 授权成功后回调
  46. * @param cancelationHandler 授权用户取消后回调
  47. */
  48. - (void)authWithAuthOption:(AuthOption)authOption
  49. completionHandler:(AUTH_COMPLETION_HANDLER)completionHandler
  50. cancelationHandler:(AUTH_CANCELATION_HANDLER)cancelationHandler;
  51. /*
  52. * 基本同上,一般业务方不要使用此方法,需要使用此方法,请联系@寻弦
  53. * @param extraInfoDict 额外参数
  54. */
  55. - (void)authWithAuthOption:(AuthOption)authOption
  56. extraInfo:(NSDictionary *)extraInfoDict
  57. completionHandler:(AUTH_COMPLETION_HANDLER)completionHandler
  58. cancelationHandler:(AUTH_CANCELATION_HANDLER)cancelationHandler;
  59. /*!
  60. * 获取当前授权会话信息
  61. * @return
  62. * 会话信息
  63. * sid -> session id (NSString*)
  64. * userId -> 用户id (NSString*)
  65. * ecode -> ecode (NSString*)
  66. * nick -> 用户nick (NSString*)
  67. * authToken -> 授权令牌 (NSString*)
  68. * ssoToken -> sso令牌 (NSString*)
  69. * topSession -> top授权 (NSString*)
  70. * cookie -> cookie (NSString*)
  71. * ......
  72. */
  73. - (NSDictionary *)currentSession;
  74. /*!
  75. * 返回当前authCenter是否已经在处理授权行为
  76. * @return YES 已经有在处理中的授权行为
  77. * NO 没有正在处理的授权行为
  78. */
  79. - (BOOL)isProcessingAuth;
  80. /*!
  81. * 标识本地auth已经失效
  82. */
  83. - (void)markInvalidAuth;
  84. @end