我正在开发一个原生的iOS应用程序,并且有一个与HTTPS通信的后端PHP服务器。
我现在拥有的是我可以使用用户名/密码登录,facebook或google登录进行登录。 服务器将生成令牌并将其发送给用户。用户将在每次调用服务器时使用它。
但: - 服务器“家伙”选择在每次拨打电话时发送新令牌。我认为这是一个糟糕的设计,原因有几个。 - 它会过期吗?如果是这样,我如何无缝地为用户体验续订令牌?如果没有,这不是很脆弱吗?
上面是一个好的设计吗?我还想知道你们正在使用什么作为你的安全设计?
干杯。
答案 0 :(得分:1)
用于保护设备中的令牌,使用SSKeyChain而不是NSUserDefaults。无需为每个呼叫生成新令牌。对于每次登录/注册,使用可以生成令牌。
答案 1 :(得分:0)
将令牌存储在SSKeyChain中。使用此方法重用相同的令牌。
- (NSString *)getUniqueDeviceIdentifierAsString
{
NSString *appName=[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey];
NSString *strApplicationUUID = [SSKeychain passwordForService:appName account:@"incoding"];
if (strApplicationUUID == nil)
{
strApplicationUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
[SSKeychain setPassword:strApplicationUUID forService:appName account:@"incoding"];
}
return strApplicationUUID;
}