首页 文章

如何在应用程序中保存用户名和密码,以便我们不需要登录应用程序?

提问于
浏览
0

我是iOS新手我不知道如何在应用程序中保存用户名和密码这样就不需要在应用程序中填写登录详细信息,直到用户不注销应用程序 . 我在NSUSerdefaults中保存了用户名和密码 . 我在谷歌上搜索 . 我发现这可以用KeyChainWrapper类来完成 . 我试过这种方式,但这不会给我有用的结果 . AnyOne可以帮我解决这个问题 . 他/她可能会非常感激 .

7 回答

  • 0

    试试这个:

    成功登录后,当用户下次直接推送到下一个视图时使用app时,请调用以下方法 .

    +(void)setFirstLogIn:(BOOL)flag
    {
        [[NSUserDefaults standardUserDefaults] setBool:flag forKey:@"FirstTime"];
       [[NSUserDefaults standardUserDefaults]synchronize];
    }
    
  • 4

    使用NSUserDefaults类

    [[NSUserDefaults standardUserDefaults] setObject:@"username" forKey:@"usersave"];
    [[NSUserDefaults standardUserDefaults] setObject:@"usernamexxx" forKey:@"passsave"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    

    让他们使用:

    NSString *password = [[NSUserDefaults standardUserDefaults] objectForKey:@"passsave"];
    NSString *username = [[NSUserDefaults standardUserDefaults] objectForKey:@"usersave"];
    
  • 3

    使用iOS钥匙串 . Do Not 使用用户默认值来存储潜在的重要信息,例如登录名和密码 .

    这是苹果公司关于其OS Keychain的一些documentation .

    还有一个非常方便,开源的iOS Keychain包装器,名为UICKeychainStore .

  • -2
    - (void)viewWillAppear:(BOOL)animated
    {
        if([[defaults objectForKey:@"remember"]isEqualToString:@"1"])
        {
             ////for getting those values:
    
    
            _txt_email.text = [defaults objectForKey:@"username"];
            _txt_password.text = [defaults objectForKey:@"password"];
    
                // Login code
        }
    
        [super viewWillAppear:animated];
    }
    
    - (IBAction)Login:(id)sender
    {
       //To store valuses:
    
    
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        if([[defaults objectForKey:@"remember"]isEqualToString:@"1"])
        {
            [defaults setObject:_txt_email.text forKey:@"username"];
            [defaults setObject:_txt_password.text forKey:@"password"];
            [defaults synchronize];
        }
    
        //Login here
    
    }
    
  • 1

    这是最简单的方法,下载这个仓库,并将其导入您的项目:

    https://github.com/soffes/sskeychain

    然后这样做:

    [[NSUserDefaults standardUserDefaults] setObject:USERS_USERNAME  forKey:@"com.yourapp.whateveryouwant"];
    
    [[NSUserDefaults standardUserDefaults] synchronize];
    
    [SSKeychain setPassword:USERS_PASSWORD forService:[[NSBundle mainBundle] bundleIdentifier] account:USERS_USERNAME];
    

    使用SSKeyChain仓库,您可以将用户的用户名同步到密码并安全存储

    您可以检索它并通过执行以下操作进行检查:

    if ([[NSUserDefaults standardUserDefaults] valueForKey:@"com.yourapp.whateveryouwant"]) {
    
        if ([SSKeychain passwordForService:[[NSBundle mainBundle] bundleIdentifier]
                                   account:[[NSUserDefaults standardUserDefaults] valueForKey:@"com.yourapp.whateveryouwant"]]) {
    
    //do work
    
         }
    }
    
  • 0

    有很多方法可以做到这一点 . 如果您在登录后要存储更多数据,我宁愿使用CoreData或Sqlite . 您可以存储创建实体或表,并将所需数据存储到该实体或表中 . 下次启动应用程序时,检查值是否存储 .

    这里的链接可以帮助您从coredata和sqllite的基础开始

    CoreData推荐http://www.raywenderlich.com/85578/first-core-data-app-using-swift

    Sqlite推荐http://www.theappguruz.com/blog/use-sqlite-database-swift

  • 0

    To store values:

    [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"username"];
    [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"password"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    

    for getting those values:

    [[NSUserDefaults standardUserDefaults] valueForKey: @"username"];
    [[NSUserDefaults standardUserDefaults] valueForKey: @"password"];
    

    当您的应用从设备中删除时,NSUserDefaults将被删除 . 否则它将存储值 .

相关问题