你知道网络上那些“用 Facebook 登录”和“用 Gmail 登录”按钮吗?它们几乎相同。
当您允许某人使用他们的 Facebook 帐户登录时,您就是在确认该人有权访问该 Facebook 帐户,而不是在确认他的身份。该确认已委托给 Facebook。
魔术链接的作用基本相同。打开链接确实确认用户有权访问电子邮件,但身份验证被委派给他的电子邮件提供商。
任何知道我的电子邮件的人都可以代表我请求登录链接
知道您的电子邮件的人可以尝试代表您登录,他们可以在您的电子邮件提供商上做同样的事情。在互联网上的任何服务上。能够尝试登录与验证自己不同,因此没有区别。
他们将无法登录,因为他们没有链接,如果您点击链接,您正在登录,而不是他们。所以没关系。
这可以与 Gmail、Yahoo 等公共电子邮件一起使用吗?
它们不是公共电子邮件。我有一个 Gmail 帐户,我很确定它不是公开的。公共电子邮件将是那些一次性电子邮件(例如 Mailinator)。
任何人都可以阅读来自 Mailinator 的公开电子邮件,因此如果您的服务显示“链接已发送到 supersecret@mailinator.com”,任何人都可以到达那里并获取令牌。
但是,如果将令牌发送到“supersecret@gmail.com”,则只有该电子邮件的所有者才能访问该令牌。如果电子邮件来自 Google、Yahoo 或白宫也没有区别:只有有权访问该电子邮件的一个(或多个)才能拥有令牌。
如果这被认为是一种身份验证形式,是否可以将其与 oauth 中的 auth_code 授权授予进行比较?
如果无法重复使用令牌,则与 OAuth 相同。