iOS App - 用户表/模型(支持手动注册和 Auth0)

标签 ios mongodb authentication model database

我正在创建一个 iOS 应用程序,并且正在研究注册/登录流程,试图了解如何构建我的用户模型。

我想允许用户通过 facebook/twitter 注册,如果他们不想通过服务进行身份验证,也可以使用独立的电子邮件/密码。

我正在使用 auth0 来处理服务认证。

如果有些人通过电子邮件/密码注册,而其他人只是通过 Auth0 进行身份验证,那么存储/跟踪我的用户的标准过程是什么。

这是我到目前为止的结果:

我的用户模型将至少包含以下属性:

  • _id
  • 姓名
  • 电子邮件
  • 密码(对于经过身份验证的用户将为空)
  • auth0_id(对于未经身份验证的用户将为空)

我将如何在登录时验证用户:

  • 如果手动注册(电子邮件/密码)的用户想要重新登录,我将检查他们的电子邮件是否存在于我的用户表中,然后对他们的密码运行匹配,如果匹配 - 返回用户对象。

  • 如果通过服务进行身份验证的用户想要重新登录,我将调用 Auth0,检查他们的 auth0_id 是否存在于我的用户表中,然后返回用户对象。

    • 这会带来任何安全问题吗?

欢迎提出意见/建议!

最佳答案

我建议将您的 user 和 auth0 模型彼此分离。例如:

用户架构:

  • _id
  • 姓名
  • 电子邮件
  • 密码

Auth0 架构:

  • _id
  • auth0_id
  • 用户编号

我还建议在用户架构上要求密码,并为通过 Auth0 注册的用户生成一个强密码。这将确保所有用户都有一个“标准”用户帐户,而不管 Auth0 和他们将来继续拥有这些服务(例如:用户删除了他们的 Facebook 帐户但继续使用您的服务 - 他们所要做的就是运行您的“忘记密码”流程)。

然后有一个标准的登录流程和一个Auth0登录流程——后者是标准的Auth0登录流程,你检查Auth0 ID是否存在并返回加入的用户记录。

关于iOS App - 用户表/模型(支持手动注册和 Auth0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26747021/

相关文章:

ios - 从 UIViewController 设置 UIView 的背景颜色

javascript - 网站在本地运行/不在Openshift上运行(将本地,全局npm软件包版本与服务器,全局npm软件包版本同步)

rest - 将 SAML 响应从 Web 应用程序传递到 REST API 以进行身份​​验证?

angularjs - Azure AD 身份验证重定向不使用配置的回复 url

iphone - AVCaptureStillImageOutput 中的 UIImage 方向不正确

ios - Cocoapods 中的嵌入式二进制文件?

javascript - 如何从 get 请求中提取 MongoDB 文档的正文?

mongodb - 有没有办法防止 MongoDB 向集合名称添加复数形式?

ios - 为什么我无法将操作附加到 Storyboard 中的新 Sign In With Apple ASAuthorizationAppleIDButton?

ios - UITableViewCell 已选择 subview 背景颜色已更改