实施用户帐户激活的最佳方法是什么?

时间:2016-05-27 15:40:18

标签: android ios authentication client-side user-registration

以下方案的android / ios应用程序的最佳实践是什么:

客户公司向我们发送用户的电子邮件/号码。我们为发送数据的用户创建帐户。每个用户安装应用程序,使用电子邮件登录并且 - >在这一点上,他/她应该证明他/她是用于注册的电子邮件的所有者。实现这一点的最佳方式是什么? 是否发送带有一些令牌代码的邮件(用户需要将其粘贴到我们的应用程序中)的好方法? 还有更好的方法吗?

目标是实现已安装应用程序的用户的身份验证,同时为用户和客户公司付出最小的努力。

2 个答案:

答案 0 :(得分:2)

创建帐户时,生成随机令牌。将随机令牌与电子邮件一起存储在服务器上。在电子邮件中,您包含一个链接,该链接将令牌和电子邮件作为查询字符串参数提供。服务器使用存储在数据库中的令牌检查URL中给出的令牌。如果匹配,则激活帐户并向用户返回激活帐户的消息。我没有看到让用户通过应用程序验证有多大好处,我会坚持只是在网络浏览器中打开链接。

答案 1 :(得分:2)

如果您只需要激活帐户,James Lambert的解决方案就足够了。

但是,据我所知,您希望通过电子邮件识别该应用的用户。而且,正如我所理解的,另一家公司收集所有用户的数据(包括可以是任何电子邮件的电子邮件,而不仅仅是用户手机中的谷歌帐户)并将其发送给您,但这些数据并没有# 39; t包含密码或其他任何可验证此用户身份的内容。

IMO您可以在应用中进行此类身份验证:

  1. 用户在应用中输入他的电子邮件,然后按"下一步"。
  2. App通过电子邮件向您的网站发出请求。
  3. 您的网站发送包含一次性密码的电子邮件
  4. 用户在应用中输入此密码(不要使用复制令牌,用户需要复制粘贴,这对于没有经验的用户来说只是另一个障碍)
  5. 应用程序与网站进行通信,网站会检查密码并生成shared secret密钥,然后保存此密钥,该密钥将在用户下次启动应用时使用。
  6. 更新:根据身份验证的目的,步骤5可能会有很大差异。我的变体可用于简单的用户跟踪,但它绝对不适用于财务应用或使用敏感数据操作的任何其他应用(因为duplication issue)。