Store some user additional information to preferences
StaticNSString *ConstKkeyuserid =@"ID";StaticNSString *ConstKkeyusername =@"username";StaticNSString *ConstKkeyname =@"name";StaticNSString *ConstKkeybio =@"Bio";StaticNSString *ConstKkeyweibo =@"Weibo";StaticNSString *ConstKkeyblog =@"Blog";StaticNSString *ConstKkeythemeid =@"theme_id";StaticNSString *ConstKkeycreatedat =@"Created_at";StaticNSString *ConstKkeystate =@" State";StaticNSString *ConstKkeyportrait =@"new_portrait";StaticNSString *ConstKkeyemail =@"Email";StaticNSString *ConstKkeyprivatetoken =@"Private_token";StaticNSString *ConstKkeyadmin =@"Is_admin";StaticNSString *ConstKkeycancreategroup =@"Can_create_group";StaticNSString *ConstKkeycancreateproject =@"Can_create_project";StaticNSString *ConstKkeycancreateteam =@"Can_create_team";StaticNSString *ConstKkeyfollow =@"Follow";@implementationUser+ (void) Saveuserinformation: (Gluser *) User {Nsuserdefaults*userdefaults = [Nsuserdefaults Standarduserdefaults]; [Userdefaults setFloat:user.userId Forkey:kkeyuserid]; [Userdefaults SetObject:user.username Forkey:kkeyusername]; [Userdefaults SetObject:user.name Forkey:kkeyname]; [Userdefaults SetObject:user.bio Forkey:kkeybio]; [Userdefaults SetObject:user.weibo Forkey:kkeyweibo]; [Userdefaults SetObject:user.blog Forkey:kkeyblog]; [Userdefaults setInteger:user.themeId Forkey:kkeythemeid]; [Userdefaults setObject:user.state forkey:kkeystate]; [Userdefaults setObject:user.createdAt Forkey:kkeycreatedat]; [Userdefaults setObject:user.portrait forkey:kkeyportrait]; [Userdefaults SetObject:user.email Forkey:kkeyemail]; [Userdefaults SetObject:user.private_token Forkey:kkeyprivatetoken]; [Userdefaults setBool:user.admin forkey:kkeyadmin]; [Userdefaults SetBool:user.canCreateGroup Forkey:kkeycancreategroup]; [Userdefaults SetBool:user.canCreateProject Forkey:kkeycancreateproject]; [Userdefaults SetBool:user.canCreatETeam Forkey:kkeycancreateteam]; [Userdefaults SetObject:user.follow Forkey:kkeyfollow]; [Userdefaults synchronize];}
Password-to-keychain storage via services and mailboxes
+ (void) Saveaccount: (NSString *) email Andpassword: (nsstring *) password { [sskeychain SetPassword: Password Forservice:@ "[email protected]" account:email];}
Remove password via service and mailbox when needed
- (void) Viewdidappear: (BOOL) animated{nsuserdefaults*userdefaults =[Nsuserdefaults Standarduserdefaults]; NSString*email = [Userdefaults objectforkey:@"Email"]; NSString*password = [Sskeychain passwordforservice:@"[email protected]"Account:email]; _accounttextfield.text= email?:@""; _passwordtextfield.text= password?:@""; if(!_accounttextfield.text.length | |!_passwordtextfield.text.length) {Submit.alpha=0.4; Submit.enabled=NO; }}
Logout operation, not delete the preferences in the mailbox and keychain password,
#pragmamark-logout-(void) logout{Nsuserdefaults*userdefaults = [Nsuserdefaults Standarduserdefaults]; [Userdefaults Removeobjectforkey:kkeyprivatetoken]; [Userdefaults Removeobjectforkey:kkeyuserid]; [Userdefaults Removeobjectforkey:kkeyusername]; [Userdefaults Removeobjectforkey:kkeyname]; [Userdefaults Removeobjectforkey:kkeybio]; [Userdefaults Removeobjectforkey:kkeyweibo]; [Userdefaults Removeobjectforkey:kkeyblog]; [Userdefaults Removeobjectforkey:kkeythemeid]; [Userdefaults Removeobjectforkey:kkeystate]; [Userdefaults Removeobjectforkey:kkeycreatedat]; [Userdefaults removeobjectforkey:kkeyportrait]; [Userdefaults Removeobjectforkey:kkeyprivatetoken]; [Userdefaults Removeobjectforkey:kkeyadmin]; [Userdefaults Removeobjectforkey:kkeycancreategroup]; [Userdefaults Removeobjectforkey:kkeycancreateproject]; [Userdefaults Removeobjectforkey:kkeycancreateteam]; [Userdefaults Removeobjectforkey:kkeyfollow]; //Delete User dynamics and project cacheNsuserdefaults *cache =[Nsuserdefaults Standarduserdefaults]; for(inti =3; I <6; i++) {NSString*key = [NSString stringWithFormat:@"type-%d", I]; [Cache Removeobjectforkey:key]; } [Cache Removeobjectforkey:@"type-9"]; //[Self.navigationcontroller Poptorootviewcontrolleranimated:yes];Projectsviewcontroller *projectviewcontroller = [ProjectsviewcontrollerNew]; Uinavigationcontroller*front =[[Uinavigationcontroller alloc] initwithrootviewcontroller:projectviewcontroller]; [Self.revealcontroller Setfrontviewcontroller:front]; [Self.revealcontroller ShowViewController:self.revealController.frontViewController];}
After the user logs in, stores the user information, logs off