ios - 我可以在 IOS Swift 应用程序中将用户名和密码保存在单例中吗?

标签 ios authentication singleton swift3 credentials

我正在开发一个 IOS swift 3 应用程序,从一个 restful web api 获取数据。第一个屏幕是登录屏幕。它要求输入用户名和密码。该应用程序转到 web api 调用身份验证方法(匿名可访问)并返回用户是否通过身份验证。 Web API 使用基本身份验证。

在ios应用中,我在登录成功后将用户名和密码保存在一个单例中。从那时起,每当我需要调用web api时,我从单例中检索用户名和密码并将它们放入我的http header “授权”参数。 当应用程序关闭时,单例将消失。 在我看来,这就像一个保存状态的桌面应用程序。那么为什么没有人这样做呢?每个人都在做钥匙串(keychain)、URLCredential 等。

谢谢!!

最佳答案

是的,你可以。尽管不推荐这样做,因为就像 neprocker 说的那样,您将不得不重新输入。

例如,如果您的应用使用 token (如 OAuth),您应该只保存刷新 token 。不是用户名或密码,这是使用 token 的想法。该应用不应保留用户的私有(private)信息。

一旦 token 过期,应用程序应要求用户再次输入用户名和密码以检索 token 并再次保存。

关于ios - 我可以在 IOS Swift 应用程序中将用户名和密码保存在单例中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40134296/

相关文章:

ios - appdelegate.m 中的 UIAlertView 不起作用

ios - UIImageView 子类化

ios - 应用程序自动部署到 Apple Store

security - 通过 HTTPS 以 JSON 格式发送密码是否被视为安全?

ios - 是否可以将单例与 ViewController 一起使用?

objective-c - 使用委托(delegate)将数组从一个类传递到另一个类 - 最佳设计模式?

c++ - 迈耶斯单例范围

ios - 在 Apple App Store 上验证 iOS 应用程序收据与在应用程序内验证有什么安全优势?

php 身份验证 token + ios

javascript - 在同一页面登录,检查SESSION,无需重新加载