在我当前的应用程序中,我必须让用户从不同的iOS设备登录到他们的帐户。目前,我正在根据令牌值进行用户身份验证。但是为了支持多个设备登录,我必须找到另一种方法来执行此操作。
因此,我想到了将设备uuid
和令牌一起保存以进行身份验证和安全性。然后,我知道我不能使用设备的uuid
,而必须使用identifierForVendor
始终提供或不提供用户或设备信息的设备。
因此,有人可以建议在ios中为同一用户帐户实现此多设备登录功能的更好和正确的方法吗?
您已经知道不允许使用设备的UUID,但是,您可以生成自己的UUID并将其存储在设备的UserDefaults中。
使用identifierForVendor并不是100%可靠的,因为它只能在iOS6及更高版本上使用,并且用户可以选择不将其提供给您,这是一个不好的选择。
这是我前一段时间从互联网复制的一些代码,直到今天仍在使用,稍后将尝试查找源并更新我的答案。编辑:源
这将为您生成一个UUID并将其存储在UserDefaults中:
- (NSString *)createUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
[[NSUserDefaults standardUserDefaults] setObject:(__bridge NSString *)string forKey:@"UUID"];
[[NSUSerDefaults standardUserDefaults] synchronize];
return (__bridge NSString *)string;
}
并且每当您需要读取生成的UUID时:
- (NSString*)UUID
{
return [[NSUserDefaults standardUserDefaults] ObjectForKey:@"UUID"];
}
现在,您也可以选择将自己的用户ID附加到该ID上,这样您就可以知道将哪个UUID链接到了该用户。
这只是它应该如何工作的粗略概图
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句