NIMLoginClient.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. //
  2. // NIMLoginClient.h
  3. // NIMLib
  4. //
  5. // Created by Netease.
  6. // Copyright (c) 2015 Netease. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. /**
  11. * 客户端类型
  12. */
  13. typedef NS_ENUM(NSInteger, NIMLoginClientType) {
  14. /**
  15. * 未知类型
  16. */
  17. NIMLoginClientTypeUnknown = 0,
  18. /**
  19. * Android
  20. */
  21. NIMLoginClientTypeAOS = 1,
  22. /**
  23. * iOS
  24. */
  25. NIMLoginClientTypeiOS = 2,
  26. /**
  27. * PC
  28. */
  29. NIMLoginClientTypePC = 4,
  30. /**
  31. * WP
  32. */
  33. NIMLoginClientTypeWP = 8,
  34. /**
  35. * WEB
  36. */
  37. NIMLoginClientTypeWeb = 16,
  38. /**
  39. * REST API
  40. */
  41. NIMLoginClientTypeRestful = 32,
  42. /**
  43. * macOS
  44. */
  45. NIMLoginClientTypemacOS = 64,
  46. };
  47. /**
  48. * 登录客户端描述
  49. */
  50. @interface NIMLoginClient : NSObject
  51. /**
  52. * 类型
  53. */
  54. @property (nonatomic,assign,readonly) NIMLoginClientType type;
  55. /**
  56. * 操作系统
  57. */
  58. @property (nullable,nonatomic,copy,readonly) NSString *os;
  59. /**
  60. * 登录时间
  61. */
  62. @property (nonatomic,assign,readonly) NSTimeInterval timestamp;
  63. /**
  64. * 自定义信息,最大32个字符;目前android多端登录,TV端和手表端,可以通过该字段区分
  65. */
  66. @property (nullable,nonatomic,copy,readonly) NSString *customTag;
  67. @end
  68. /**
  69. * 自动登录参数
  70. */
  71. @interface NIMAutoLoginData : NSObject
  72. /**
  73. * 账号
  74. */
  75. @property (nonatomic,copy) NSString *account;
  76. /**
  77. * 令牌(在后台绑定的登录token)
  78. */
  79. @property (nonatomic,copy) NSString *token;
  80. /**
  81. * 强制模式
  82. * @discussion 默认为 NO.
  83. * 在云信中,我们推荐用户在在首次登录时使用手动登录接口,而后的登录采用非强制的自动登录模式,这种方式可以有效的规避非法异地登录带来的损害。(设备失窃或账号失窃)
  84. * 非强制模式下的自动登录,服务器将检查当前登录设备是否为上一次登录设备,如果不是,服务器将拒绝这次自动登录。(返回 error code 为 417 的错误)
  85. * 而强制模式下的自动登录,服务器将不检查当前登录设备是否为上一次登录设备,安全性较低。但相对的更加方便,适合 IM 仅作为辅助模块的 App
  86. */
  87. @property (nonatomic,assign) BOOL forcedMode;
  88. @end
  89. /**
  90. * 服务器时间
  91. */
  92. @interface NIMServerTime : NSObject
  93. /**
  94. * 服务器时间戳
  95. */
  96. @property (nonatomic, assign) uint64_t timestamp;
  97. @end
  98. NS_ASSUME_NONNULL_END