【问题标题】:What is the more appropriate way to handle authorization in the iOS app在 iOS 应用程序中处理授权的更合适的方法是什么
【发布时间】:2014-11-23 11:00:21
【问题描述】:

我正在尝试创建一个需要对某些 ​​REST 服务进行授权的 iOS 应用程序。这种应用程序的更合适的结构是什么?

我认为应该有类似SignInViewController 的内容,带有适当的文本字段来输入用户名和密码,如果满足以下条件之一,我需要出示它:

  • 之前没有登录过
  • 之前输入的用户凭据当前无效(当然,REST 服务会返回此信息)

好的,第一个问题是——我应该将检查显示此视图控制器的必要性的代码放在哪里?在func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool函数中?

下一个问题是——我应该如何记住上次输入的用户凭据?我应该使用名为 smth 的键(如“LastEnteredUserCredentials”)将其保存到 iOS 钥匙串吗?

那么,在这两种情况下(首次授权或使用保存的用户凭据进行授权),我应该将向 REST 服务发出 HTTP 请求以获取用户授权的代码放在哪里?

有没有做这种事情的优雅例子?

提前致谢。

【问题讨论】:

    标签: ios xcode cocoa-touch swift xcode6


    【解决方案1】:
    1. 我认为检查您的授权状态最合适的地方是applicationDidBecomeActive
    2. 最好将所有凭据保存在钥匙串中,因为它可能会在所有用户的设备之间共享所有数据。
    3. 通过创建AuthorizationManager 类使用单音模式,该类包含所有相关代码并在验证时生成通知。状态改变。为您的应用程序委托订阅这些通知,并让它呈现一个适当的视图控制器。此外,单例可以观察到UIApplicationDidBecomeActiveNotification 通知(来自 NotificationCenter),因此无需修改 appDelegate 的applicationDidBecomeActive 方法

    【讨论】:

      猜你喜欢
      • 2023-02-04
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2012-08-26
      • 2013-02-05
      • 1970-01-01
      相关资源
      最近更新 更多