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

What is the best way to implement user account activation?

android/ios 应用在以下情况下的最佳做法是什么:

客户公司将用户的 emails/numbers 发送给我们。我们为发送数据的用户创建帐户。每个用户安装应用程序,使用电子邮件登录和 -> 此时 he/she 应该证明 he/she 是用于注册的电子邮件的所有者..实现这个的最佳方法是什么? 发送带有一些令牌代码(然后用户需要将其粘贴到我们的应用程序中)的邮件是好方法吗? 有更好的方法吗?

目标是实现对已安装该应用程序的用户的身份验证,同时对用户和客户公司而言都是最小的努力。

创建帐户时,生成一个随机令牌。将该随机令牌与电子邮件一起存储在服务器上。在电子邮件中,您包含一个 link,它提供令牌和电子邮件作为查询字符串参数。服务器检查 url 中给出的令牌与数据库中存储的令牌。如果它们匹配,您将激活该帐户,并 return 向用户发送一条消息,说明该帐户已激活。我看不出让用户通过应用程序进行验证有多大好处,我会坚持只在网络浏览器中打开 link。

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

但是,据我了解,您想通过电子邮件识别应用程序的用户。而且,据我所知,另一家公司收集所有用户的数据(包括可以是任何电子邮件的电子邮件,而不仅仅是用户 phone 中的 google 帐户)并将其发送给您,但这些数据不会t 包含密码或任何其他可以验证此用户的内容。

IMO 你可以在应用程序中进行这样的身份验证:

  1. 应用程序中的用户输入他的电子邮件并按 "next"。
  2. 应用程序通过其电子邮件向您的网站发出请求。
  3. 您的网站发送带有一次性密码的电子邮件
  4. 用户在应用程序中输入此 PIN 码(不要使用用户需要复制粘贴的复杂令牌,这只是没有经验的用户的另一个障碍)
  5. 应用程序与网站通信,网站检查密码并生成 shared secret 密钥,然后都保存此密钥,用户下次启动应用程序时将使用它。

更新:根据身份验证的目的,第 5 步可能会有很大差异。我的变体可用于简单的用户跟踪,但它绝对不适用于金融应用程序或任何其他使用敏感数据操作的应用程序(因为 duplication issue)。