在我的Iphone App中,用户使用用户名和密码登录。在用户登录后,他可以通过API访问每个属性和功能。但我想保持一个会话。也就是说,如果用户在应用程序中无所事事,在获得30分钟后,会话应该到期,并且必须要求用户使用他的用户名和密码登录。
答案 0 :(得分:2)
我目前正在研究完全相同的事情。
我为会话有效性执行以下方案:
如果第一个传入请求Session Token
似乎无效,我会尝试在后台静默重新生成会话密钥。
如果程序#1由于某些原因而无法正常工作,例如用户从其他地方更改了密码,我会再次将用户重定向到登录页面,并提醒“您的会话密钥已过期请注意再次“。
为了了解更多信息,我将会话密钥存储在NSUserDefaults
:
// Saving the Key
[[NSUserDefaults standardUserDefaults] setValue:@"ABCDEFGHIJK" forKey:@"SessionKey"];
// Reading the Key
[[NSUserDefaults standardUserDefaults] stringForKey:@"SessionKey"];
希望这有帮助。
答案 1 :(得分:0)
在登录时设置上一个时间mPreviousTime = [NSDate timeIntervalSinceReferenceDate];
,在您的情况下设置适当的kThresholdHideValue(以秒为单位),它是30分钟(30 * 60),您可以使用以下方法检查时间是否已过去...
NSTimeInterval timeNow = [NSDate timeIntervalSinceReferenceDate];
if( ( mPreviousTime + kThresholdHideValue <= timeNow ) )
{
//Log out
}
并在用户执行某些操作时调用mPreviousTime = [NSDate timeIntervalSinceReferenceDate];
。因此,只有当用户30分钟内未执行任何操作时,您才能注销。