LoginUtils.m
5.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
//
// LoginUtils.m
// DreamSleep
//
// Created by peter on 2022/4/19.
//
#import "LoginUtils.h"
#import "LoginController.h"
@implementation LoginUtils
#pragma mark - public
+ (UserModel *)getUserLoginData {
UserModel *userModel = [NSKeyedUnarchiver unarchiveObjectWithData:kGetUserDefaultsObj(UserBasicInfo)];
// DSLog(@"获取用户信息:%@", userModel.debugDescription);
return userModel;
}
+ (int)getUserID {
UserModel *userModel = [self getUserLoginData];
return userModel.user_id;
}
+ (NSString *)getSid {
UserModel *userModel = [self getUserLoginData];
return userModel.sid;
}
+ (NSString *)getToken {
UserModel *userModel = [self getUserLoginData];
DSLog(@"token:%@", userModel.token);
return userModel.token;
}
+ (NSString *)getFaceImg {
UserModel *userModel = [self getUserLoginData];
return userModel.face_img;
}
+ (NSString *)getBirthday {
UserModel *userModel = [self getUserLoginData];
return userModel.birthday;
}
+ (NSString *)getUserMobile {
UserModel *userModel = [self getUserLoginData];
return userModel.mobile;
}
+ (void)updateSid:(NSString *)sid token:(NSString *)token isAccess:(int)isAccess {
UserModel *userModel = [self getUserLoginData];
userModel.sid = sid;
userModel.token = token;
userModel.is_access = isAccess;
[self saveUserLoginData:userModel];
}
+ (void)updateFaceImg:(NSString *)face_img {
UserModel *userModel = [self getUserLoginData];
userModel.face_img = face_img;
[self saveUserLoginData:userModel];
}
+ (void)updateUserInfo:(NSDictionary *)infos {
NSString *key = [infos allKeys][0];
id value = infos[key];
UserModel *userModel = [self getUserLoginData];
if ([key isEqualToString:@"nick_name"]) {
userModel.nick_name = value;
} else if ([key isEqualToString:@"gender"]) {
userModel.gender = [value boolValue];
} else if ([key isEqualToString:@"birthday"]) {
userModel.birthday = value;
} else if ([key isEqualToString:@"mobile"]) {
userModel.mobile = value;
}
[self saveUserLoginData:userModel];
}
+ (void)saveUserLoginData:(UserModel *)model {
NSData *userData = [NSKeyedArchiver archivedDataWithRootObject:model];
kSetUserDefaultsObj(userData, UserBasicInfo);
kUserDefaultsSynchronize;
// 发送更新用户数据显示UI通知
[[NSNotificationCenter defaultCenter] postNotificationName:HasUpdateUserDataNoti object:nil];
DSLog(@"保存用户信息:%@", model.debugDescription);
}
+ (void)clearUserLoginData {
kUserDefaultsRemoveObj(UserBasicInfo);
kUserDefaultsSynchronize;
// 发送更新用户数据显示UI通知
[[NSNotificationCenter defaultCenter] postNotificationName:HasUpdateUserDataNoti object:nil];
// 其他通知
[LoginUtils updateNoti];
}
+ (void)jumpToLoginControllerWithTarget:(UIViewController *)target {
if (target && [target isKindOfClass:[UIViewController class]]) {
BaseNaviController *navi = [[BaseNaviController alloc] initWithRootViewController:[[LoginController alloc] init]];
[target presentViewController:navi animated:YES completion:nil];
}
}
+ (void)jumpToLoginControllerWithTarget:(UIViewController *)target isAccess:(BOOL)isAccess {
if (target && [target isKindOfClass:[UIViewController class]]) {
LoginController *loginVC = [[LoginController alloc] init];
loginVC.isAccess = isAccess;
BaseNaviController *navi = [[BaseNaviController alloc] initWithRootViewController:loginVC];
[target presentViewController:navi animated:YES completion:nil];
}
}
+ (void)jumpToLoginControllerWithTarget:(UIViewController *)target selector:(SEL)sel {
if (target && [target isKindOfClass:[UIViewController class]]) {
LoginController *loginVC = [[LoginController alloc] init];
loginVC.successBlock = ^{
if ([target respondsToSelector:sel]) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[target performSelector:sel];
#pragma clang diagnostic pop
}
};
BaseNaviController *navi = [[BaseNaviController alloc] initWithRootViewController:loginVC];
[target presentViewController:navi animated:YES completion:nil];
}
}
+ (void)updateDataNotiAfterLoginSuccess {
[LoginUtils updateNoti];
}
#pragma mark - private
+ (void)updateNoti {
// 刷新主页数据
[[NSNotificationCenter defaultCenter] postNotificationName:NeedUpdateHomePage object:nil];
// 刷新AI睡眠教练
[[NSNotificationCenter defaultCenter] postNotificationName:NeedUpdateAICoach object:nil];
// 刷新社区动态列表
[[NSNotificationCenter defaultCenter] postNotificationName:NeedUpdateComList object:ReBeginRefresh];
}
+ (void)saveCookie {
// 存储Cookie
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
NSURL *url = [NSURL URLWithString:ServerURL];
NSString *IP = url.host;
for (NSHTTPCookie *tempCookie in cookies) {
if ([tempCookie.domain isEqualToString:IP]) {
DSLog(@"tempCookie:%@", tempCookie);
kSetUserDefaultsObj(tempCookie.properties, DsAppCookie);
kUserDefaultsSynchronize;
}
}
}
@end