| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- //
- // TCLoginParam.m
- // TCLVBIMDemo
- //
- // Created by dackli on 16/8/4.
- // Copyright © 2016年 tencent. All rights reserved.
- //
- #import "TCLoginParam.h"
- #import "TCUtil.h"
- #import "TCConstants.h"
- @implementation TCLoginParam
- #define kLoginParamKey @"kLoginParamKey"
- + (instancetype)shareInstance
- {
- static TCLoginParam *mgr;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- if (mgr == nil) {
- mgr = [[TCLoginParam alloc] init];
- }
- });
- return mgr;
- }
- - (instancetype)init
- {
- self = [super init];
- if (self) {
- [self loadFromLocal];
- }
- return self;
- }
- - (void)loadFromLocal {
- NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:APP_GROUP];
- if (defaults == nil) {
- defaults = [NSUserDefaults standardUserDefaults];
- }
- NSString *useridKey = [defaults objectForKey:kLoginParamKey];
- if (useridKey) {
- NSString *strLoginParam = [defaults objectForKey:useridKey];
- NSDictionary *dic = [TCUtil jsonData2Dictionary: strLoginParam];
- if (dic) {
- self.token = [dic objectForKey:@"token"];
- self.tokenTime = [[dic objectForKey:@"tokenTime"] longValue];
- self.expires = [[dic objectForKey:@"expires"] longValue];
- self.identifier = [dic objectForKey:@"identifier"];
- self.hashedPwd = [dic objectForKey:@"hashedPwd"];
- self.isLastAppExt = [[dic objectForKey:@"isLastAppExt"] intValue];
- } else {
- self.token = nil;
- self.tokenTime = 0;
- self.expires = 0;
- self.identifier = nil;
- self.hashedPwd = nil;
- self.isLastAppExt = 0;
- }
- }
- }
- - (void)saveToLocal {
- if (![self isValid]) {
- return;
- }
- self.tokenTime = [[NSDate date] timeIntervalSince1970];
- NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
- [dic setObject:self.token forKey:@"token"];
- [dic setObject:@(self.tokenTime) forKey:@"tokenTime"];
- [dic setObject:@(self.expires) forKey:@"expires"];
- [dic setObject:self.identifier forKey:@"identifier"];
- [dic setObject:self.hashedPwd forKey:@"hashedPwd"];
- #if APP_EXT
- [dic setObject:@(1) forKey:@"isLastAppExt"];
- #else
- [dic setObject:@(0) forKey:@"isLastAppExt"];
- #endif
- NSData *data = [TCUtil dictionary2JsonData: dic];
- NSString *strLoginParam = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- NSString *useridKey = [NSString stringWithFormat:@"%@_LoginParam", self.identifier];
- NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:APP_GROUP];
- if (defaults == nil) {
- defaults = [NSUserDefaults standardUserDefaults];
- }
- [defaults setObject:useridKey forKey:kLoginParamKey];
- // save login param
- [defaults setObject:strLoginParam forKey:useridKey];
- [defaults synchronize];
- }
- - (void)clearLocal{
- NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:APP_GROUP];
- if (defaults == nil) {
- defaults = [NSUserDefaults standardUserDefaults];
- }
- NSString *useridKey = [defaults objectForKey:kLoginParamKey];
- if(useridKey != nil){
- [defaults removeObjectForKey:useridKey];
- [defaults synchronize];
- }
- [self loadFromLocal];
- }
- + (NSString *)storedUserID {
- NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:APP_GROUP];
- if (defaults == nil) {
- defaults = [NSUserDefaults standardUserDefaults];
- }
- NSString *useridKey = [defaults objectForKey:kLoginParamKey];
- if(useridKey == nil){
- return nil;
- }
- return [defaults objectForKey:useridKey];
- }
- - (BOOL)isExpired {
- NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:APP_GROUP];
- if (defaults == nil) {
- defaults = [NSUserDefaults standardUserDefaults];
- }
- NSString *useridKey = [defaults objectForKey:kLoginParamKey];
- if(useridKey != nil){
- NSObject *obj = [defaults objectForKey:useridKey];
- if (obj == nil) {
- return YES;
- }
- }
- time_t curTime = [[NSDate date] timeIntervalSince1970];
- if (curTime - self.tokenTime > self.expires) {
- return YES;
- }
- return NO;
- }
- - (NSDate *)expireDate {
- if ([TCLoginParam storedUserID] == nil) {
- return nil;
- }
- return [NSDate dateWithTimeIntervalSince1970: self.tokenTime + self.expires];
- }
- - (BOOL)isValid {
- if (self.identifier == nil || self.identifier.length == 0) {
- return NO;
- }
- if (self.hashedPwd == nil || self.hashedPwd.length == 0) {
- return NO;
- }
- return YES;
- }
- @end
|