簡體   English   中英

創建“始終登錄” IOS應用程序的最安全方法是什么?

[英]What's the safest way to create an 'always logged in' IOS app?

我正在編寫代碼,以便用戶使用電子郵件+密碼注冊帳戶。 我想將登錄憑據存儲在IOS應用中,然后用於用戶執行的所有遠程操作(創建訂單,更新帳戶信息等)。

使用PDKeychainBindings將密碼存儲在IOS鑰匙串中,然后將針對每個請求的用戶/ pass over HTTPS發送到服務器是否安全?

有沒有更好/更安全的方法?

有兩種方法:

1)您可以使用KeyChain: http : //developer.apple.com/library/ios/#documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

例:

//Initializing
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"YourAppLogin" accessGroup:nil];
//Saving
[keychainItem setObject:@"password you are saving" forKey:kSecValueData];
[keychainItem setObject:@"username you are saving" forKey:kSecAttrAccount];
//Getting
NSString *password = [keychainItem objectForKey:kSecValueData];
NSString *username = [keychainItem objectForKey:kSecAttrAccount];
//deleting
[keychainItem resetKeychainItem];

2)您可以使用NSUserDefaults

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *pword = [prefs setObject:@"yourpassword" ForKey:@"password"];
NSString *username = [prefs setObject:@"username" ForKey:@"username"];
[prefs synchronize];
//getting 
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *pword = [prefs objectForKey:@"password"];
NSString *username = [prefs objectForKey:@"username"];

方法1比方法2更安全。您可以通過加密密碼和用戶名來使方法2更安全。

希望這可以幫助..

最安全的方法是不保存密碼。 通常,在首次連接時,您將用戶名和密碼交換為永久授權令牌。

然后,您將此令牌保存到鑰匙串中,並且所有其他服務器請求僅由令牌授權。 僅當令牌無效時,才要求用戶再次輸入密碼。 (它是永久的,因此它不應過期,但可以被服務器無效)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM