【问题标题】:Authenticating a Today Widget for API access为 API 访问验证 Today Widget
【发布时间】:2017-11-09 10:48:43
【问题描述】:

我需要向现有 iOS 应用添加 Today Widget/扩展,这需要用户通过 WKWebView 登录。

由于扩展仅与 Apple 框架通信或通过 openURL() 返回主应用程序,我如何最好地与 Today Widget/扩展程序共享存储在主应用程序中的身份验证令牌,以便它可以进行经过身份验证的 API 调用?

这可以通过共享钥匙串来完成吗?还是有其他安全的替代方案?

让用户在 Today 扩展 UI 中再次登录是不可行的。

【问题讨论】:

    标签: ios today-extension ios-extensions


    【解决方案1】:

    您可以使用应用组在主应用和今日小部件扩展之间共享数据。您需要为您的应用程序激活 App Group 并创建:

    UserDefaults.init(suiteName: "group.com.yourOrganization.yourApplicationName")
    

    在主应用程序中,在此 UserDefaults 中设置您的数据,并尝试从您的 Today Widget 扩展程序中访问它。

    【讨论】:

    • 谢谢。这是否安全并因此适合共享身份验证令牌?
    • 好吧,UserDefaults 绝对不是保存安全数据的地方,如果这对您来说是个问题,您可以考虑以某种方式加密令牌。但是,在我看来,单一令牌不应该是一个安全问题。
    • 我刚刚发现可以使用共享钥匙串组 - 请参阅 WWDC 视频中的 14m00:developer.apple.com/videos/play/wwdc2014/217
    • 是的,你是对的,这可能是你的问题的解决方案。您可以为您的问题写下答案,以便其他人可以看到您的结论。
    • 完成!感谢您的帮助。
    【解决方案2】:

    使用共享钥匙串组来存储令牌,如 this WWDC video 中的 14m00s 所述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多