CloudKit身份验证登录/密码

Hik*_*sei 3 authentication ios parse-platform cloudkit

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

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

在Parse中没有类似"密码"的字段,所以我不知道如何以安全的方式在我的表中存储密码.而且我不确定在公共部分保存密码是否安全.

我想知道在CloudKit(登录/密码)中是否有良好的实践来实现基本身份验证?

在此先感谢您的帮助;)

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

drd*_*rdr 6

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

工作流程:

A.用户注册

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

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

  3. 如果用户名/电子邮件已存在,请向"用户"容器发出请求.如果是,请警告用户.如果没有,继续该过程.
  4. 在Cloudkit中的公共"users"容器上传电子邮件/用户名和加密密码.还包括用户的iCloudId.

B.用户登录

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

C.用户忘记密码

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

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