CloudKit身份验证登录/密码

时间:2016-02-10 10:18:32

标签: ios authentication parse-platform cloudkit

这是我的问题,我使用Parse解决方案构建了一个应用程序。在这个应用程序中,我使用了Parse的基本验证。在解析死亡之后,我需要迁移。

我想使用CloudKit解决方案实现身份验证,但我不确定这是一个很好的实践。我知道Cloudkit基本身份验证基于用户apple帐户。但我需要使用登录名/密码进行身份验证。

没有实物和#34;密码"就像在Parse中一样,所以我不知道如何以安全的方式在我的表用户中存储密码。而且我不确定在公共部分保存密码是否安全。

我想知道在CloudKit(登录/密码)中实施基本身份验证是否有良好做法?

先谢谢你的帮助;)

PS:其他解决方案应该是移动到firebase,但我现在更喜欢CloudKit的逻辑。

2 个答案:

答案 0 :(得分:6)

要使用CloudKit管理登录/密码,没有后端登录代码,但让用户使用最近引入的Cloudkit服务器密钥访问从其他位置(Web应用程序,Android应用程序等)登录,您需要管理app中的登录逻辑:

工作流:

一个。用户注册

  1. 创建"用户" Cloudkit Dashboard中公共数据库中的容器。

  2. 用户在注册时输入密码时,请加密密码。

  3. 向"用户"提出请求容器,如果用户名/电子邮件已存在如果是,请警告用户。如果没有,请继续此过程。
  4. 在公众"用户"上传电子邮件/用户名和加密密码Cloudkit中的容器。还包括用户的iCloudId。
  5. B中。用户登录

    1. 当用户输入用户名/电子邮件和密码时,查询"用户"使用用户名/电子邮件加密密码。如果请求为nil,则表示数据库中不存在此用户名/电子邮件。
    2. 如果数据库返回加密密码,请在应用程序中对其进行解密,并将其与用户在登录表单中键入的密码进行比较。如果它们不匹配,则警告用户密码不匹配。
    3. ℃。用户忘记密码

      • 为了让用户更改密码,用户必须登录到其iCLoud帐户才能比较请求更改密码的帐户的iCloudId等于CloudKit中保存的用户的iCLoudId。
      • 或者,您可以在用户注册时向用户提出安全问题,然后在用户请求更改密码时检查这些问题。

      这不是一个建议的解决方案(在可扩展性方面),但我相信它可以回答你的问题。

答案 1 :(得分:1)

当您选择CloudKit时,您必须使用Apple的iCloud身份验证,并且您无法存储用户的密码。

但您可以构建额外的身份验证层。当用户使用iCloud登录时,您可以要求他选择一个密码,您可以将其存储在私人(!)记录类型中(引用iCloud用户)。

这样,用户需要先使用iCloud登录,然后在应用中输入应用专用密码。