当用户登录服务时,我应该在哪个地方存储令牌?我不是保存密码(显然我在使用钥匙串的地方),而只是保存密码.很多地方都说只使用NSUserDefaults,但StackOverflow上的一些人似乎真的热衷于Keychain.
NSUserDefaults很好吗?
我正在使用AFNetworking作为我的iPhone应用程序的网络层,它连接到使用Devise进行身份验证的Rails服务器.如果我登录(通过POST调用)提供用户名/密码,那么之后我执行的任何GET都可以.
如果我关闭应用程序(不仅仅是背景),那么我的所有GET请求都会失败,因为我猜他们没有经过身份验证.
所以我假设cookie存储在某个地方; 有没有办法将它们保存在NSUserDefaults或类似的地方,以避免一直登录?
我想使用自动登录功能.因此,当用户打开应用程序时,他将被委派给"登录屏幕".当他成功登录时,他应该被引导到他的帐户.我称之为"帐户屏幕".现在,当用户重新启动应用程序时,他应该直接转到他的帐户,而不会看到"登录屏幕".
登录功能在我的项目中已经正常工作(用户名和密码保存在UserDefault中),但每次关闭应用程序时,我都必须再次登录.所以我的问题是:如何自动登录用户?或者更好地说:我如何检查数据(保存在UserDefault中)是否与数据库(MYSQL)中的数据相同?
我想在我的应用程序上保存数据,我使用DataCore进行保存,但它将数据保存在实体中,并且此实体中的属性可以保存许多不同的值.我需要在Android中为每个属性保存一个数据作为首选项.我怎么能这样做?请帮我.谢谢.这是我的代码:
@IBAction func SaveAll(sender: AnyObject) {
let username:String = user_name.text!
let password:String = pass_word.text!
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context:NSManagedObjectContext = appDel.managedObjectContext
let newStu = NSEntityDescription.insertNewObjectForEntityForName("Student", inManagedObjectContext: context) as NSManagedObject
newStu.setValue(username, forKey: "userName")
newStu.setValue(password, forKey: "passWord")
do {
try context.save()
} catch {}
}
Run Code Online (Sandbox Code Playgroud) 我的应用程序从我们的Web服务中提取JSON数据.在所有直到现在的实例中,信息将保留在内存中或者只是动态刷新,除了API中使用的登录令牌之外,不需要保留本地任何内容.通过我们添加的新功能之一,我们将采用一组位置,最大26位,具有长,纬度,半径和名称.
我还需要为此数据添加1-2个字段以创建更大的对象.所以我的问题是,在iOS文件系统中存储此类数据的最佳方法是什么?目前我一直在使用NSUserDefaults,但对于大量数据而言,这似乎有点受限或不明智.也许不吧.
需要检索,更改或编辑此数据并重新保存.所有这一切仍然保留了拉动这26个物体中的任何一个的能力.提前感谢您的阅读和帮助.
我在哪里可以找到一个很好的详细教程,使用sskeychain来存储和检索用户名和密码,并在UIWebView中进行基本身份验证?其次,就基于Web的应用程序存储和使用身份验证所需的方法而言,我是否在正确的轨道上?(见下面的解释.)
我找到了一些使用不同方法的教程:
根据以下其他SO问题的建议,建议使用sskeychain以便更轻松地使用钥匙串来存储身份验证参数.
我的计划是按照建议在钥匙串中在设备上本地存储用户名和密码,并使用基本身份验证通过UIWebView连接到我的PHP代码.是否有经验丰富的iOS开发人员推荐的有关用户身份验证主题的xcode/Obj-C新手的详细分步教程?
Apple文档似乎不太有用.它既可以是简单的销售术语,也可以是方法和参数的头部描述,没有很多有用的例子.
更新:
我最后只使用NSUserDefaults在本地存储用户名和密码,然后使用AFNetworking库进行身份验证.如果这些是不明智的,我会欢迎一个答案,为更好的方法提供指导.
我是编写网络应用程序和编写iPhone应用程序的新手.我有一个简单的Web应用程序,可以使用authlogic让用户登录/注册.
我想允许iPhone应用程序的用户登录并注册.为了做到这一点,我打算使用ASIHTTP.我这样做是基于这个stackoverflow主题:Authlogic和iPhone应用程序登录
这是最好的解决方法还是有更好/更简单的方法呢?我想尝试使用ObjectiveResource,但遗憾的是我无法访问iphoneonrails.com网站.
现在,假设我可以连接系统,如何在设备上保存密码?我希望用户只需登录一次.我是否保存了一些authlogic令牌,还是应该将用户名/密码保存到iOS中的钥匙串?对我来说,保存单次使用令牌似乎是有意义的.
我有复选框Remember Password(用于登录表单).我想要当我检查时记住它保存并形成运行它显示复选框检查.如果我取消选中它运行并显示复选框取消选中.请分享我 预先感谢
我有一个登录视图控制器,用户需要输入用户名和密码才能看到主页.现在用户必须每次都输入用户名和密码,这不方便.我需要一个"记住用户名"和"记住密码"的复选框,以便用户可以选择是否愿意在下次登录时存储他们的密码用户名.
有什么好方法吗?或者我是否必须使用Keychain,根据很多人的说法是最好的方式?
我的代码如下:
import UIKit
import Firebase
class LoginViewController: UIViewController {
var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imageView = UIImageView(frame: view.bounds)
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
imageView.image = #imageLiteral(resourceName: "background")
imageView.center = view.center
view.addSubview(imageView)
self.view.sendSubview(toBack: imageView)
activityIndicator.hidesWhenStopped = true
}
//Outlets
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
//Login Action
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
@IBAction func loginAction(_ sender: AnyObject) {
self.activityIndicator.startAnimating()
if self.emailTextField.text == "" || self.passwordTextField.text == "" {
//Alert to tell …Run Code Online (Sandbox Code Playgroud) 我从这里使用常见的Keychain-wrapper: iOS:如何在应用程序中存储用户名/密码?
这是我的Set-Code:
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"Animex" accessGroup:nil];
[keychain setObject:username forKey:@"Username"];
[keychain setObject:password forKey:@"Password"];
[keychain release];
Run Code Online (Sandbox Code Playgroud)
这是我的Get-Code:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *password = [prefs stringForKey:@"Password"];
if ([password length] != 0)
{
return password;
}
else
{
return nil;
}
Run Code Online (Sandbox Code Playgroud)
我只收回NIL,我做错了什么?
我需要在NSUserDefault中保存用户名和密码.我打算在IB中放置一个圆形的矩形按钮.在按下时,用户名和密码将保存在NSUserDefault中,这样当用户杀死应用程序并尝试在一段时间后再次登录时,他们不需要再次输入他们的登录详细信息.任何帮助将受到高度赞赏.
谢谢和最好的问候,
个人计算机
ios ×8
objective-c ×5
xcode ×3
iphone ×2
keychain ×2
afnetworking ×1
api ×1
authlogic ×1
autologin ×1
cocoa ×1
cookies ×1
file-storage ×1
sskeychain ×1
swift ×1
uiwebview ×1