有什么方法可以生成自动登录/令牌认证链接?

时间:2015-08-14 17:23:35

标签: authentication login token access-token

我有一个帐户,我会推荐,而不是必须制作一个完整的目标网页,并为用户提供我的推荐链接 - 我只是让他们从我的帐户购买。

有没有什么方法可以生成一个链接,自动登录用户而不必透露我的密码?

1 个答案:

答案 0 :(得分:1)

你绝对可以通过使用像JSON Web Token(JWT)这样的东西来实现这一点。

基本上,它的工作方式是这样的:

  • 在您的服务器上,创建一个使用密钥(只有您的服务器知道的随机字符串)签名的JWT。
  • 在您的JWT中,您需要包含您希望购买的用户的帐户ID。
  • 您将此JWT通过电子邮件发送给链接中的人,例如https://mywebsite.com/order?token=<jwt-token-here>
  • 用户点击该链接。
  • 您的网络服务器从URL参数中取出令牌,并确保其有效(签名是好的)。
  • 然后,您的网络服务器会在令牌中找到该帐户ID,并从您的用户数据库中检索该用户帐户。
  • 然后,您使用Cookie或其他任何方式登录该用户,并将其指向完全登录的购买页面!

这是一个非常典型的网络流程,适用于您正在尝试的内容,并且是完成此类操作的完美方式。有大量的JWT库使得这很容易做到,所以它在技术上不应该具有挑战性。

关于创建JWT,您应该知道的另一件事是,您可以设置“到期”时间。您应该明确这样做,因为您不希望某人在将来使用您的令牌月份登录。最好的方法是生成一个持续24小时左右的令牌,然后通过电子邮件发送给用户。这样,它会在一天后过期。

最后要知道的是:实际上有很多auth库可以简化这些内容。我是自己的作者:express-stormpath。根据你想要做的事情,这可能会让你的生活变得更加容易,因为它可以自动生成这些令牌,并为你处理会话创作。

希望有所帮助!