代码之家  ›  专栏  ›  技术社区  ›  itsaboutcode

在nsuserdefaults中保存全局值是否安全/良好做法?

  •  1
  • itsaboutcode  · 技术社区  · 14 年前
    1. 我正在制作一个iPhone应用程序, 中需要用户名和密码 所有要请求的屏幕 服务器,我正在考虑 将这两个值保存在 nsUserDefault而不是传递 围绕物体。

    2. 我也认为如果用户登录一次会很有用, 再次使用应用程序,然后用户 不必输入他/她的详细信息 再一次。

    但我很好奇,在第一个要求中使用它是否安全/良好?

    2 回复  |  直到 12 年前
        1
  •  6
  •   vfn    14 年前

    我没有任何反对在用户默认设置下保存这些数据的内容。我没有得到的是在每个请求上公开用户凭据的想法。

    我建议您请求一次凭据,向您的服务器进行身份验证并返回“会话令牌”。保存此令牌并使用它在每个请求上验证用户。(这意味着您将在服务器上保存令牌,或者使用算法检查令牌)

    执行此操作时,您不会一直公开用户凭据,您可以控制会话,并且可以在需要时使其过期,从而强制用户再次登录。

    对于更复杂的实现,您可以使用google搜索OAuth或XAuth以及一些相关的身份验证方法。

    干杯, 变频调速

        2
  •  3
  •   hotpaw2    14 年前

    在nsuserdefault中保存全局值是合理的,因为您希望在应用程序被终止和重新启动后(就像在ios4.0下可能发生的那样)仍能存活下来。

    密码应该保存在内存中(可能是单例模型对象),或者保存在钥匙链中,因为不同的iTunes备份数据库可能会公开存储在用户默认值中的内容。