我使用nodejs无密码(https://passwordless.net/)库进行无密码登录。其中一项功能是在电子邮件中发送的链接,用于在浏览器中打开登录页面。效果很好。 我想要做的是,如果点击链接,在一台设备上,用户输入他们的电子邮件的页面在另一台设备上打开,那么该页面也会使用一些cookie或其他东西登录。
这样做的原因是为无密码登录的概念增加了更多便利 - 通过点击手机上的链接,您无需转到计算机浏览器中的另一个标签页。
人们对尽可能无缝地进行无密码登录有任何其他想法吗?
答案 0 :(得分:0)
你要求的东西是不可能的,因为它会引发问题"认证旨在回答。即,"此客户端应用程序是否代表使用此服务注册的用户运行?"
让我们一起来看看:
设备1
此工作流程(特别是步骤3-5)的效果是让您推断出重要的信息:联系本网站的任何人都可以控制所提供的电子邮件地址。现在让我们看看另一台设备。
设备2
所以我们有一个带有cookie的设备,但现在是什么?从字面上看,世界上任何人都可以在您的网站上指向网络浏览器或应用。我们需要更多信息。所以我们可以要求提供一个电子邮件地址:
现在我们收到了来自Device 2的电子邮件。但我们不知道这是否合法地是控制此电子邮件地址的用户。它可能很容易成为攻击者,有人在你的服务之后,在这个用户之后,或者可能只是一个带有一些机器人的垃圾邮件发送者。
直到我们在原始工作流程中进入第6步,我们才能获得足够的信息,以了解该设备是否与设备1上的同一用户一起使用。但是,一旦我们离开了用户刚刚登录设备2!在那时,没有必要自动将它们记录下来"来自设备1,因为他们只是在设备2上验证了自己。
答案 1 :(得分:0)