使用 Outlook 时 Magic Link 已过期 - Nextauth

问题描述 投票:0回答:2

我们昨天推出了我们的产品,一些用户报告说,当他们点击登录的魔术链接时,该链接已过期。这是由 Microsoft 的安全链接引起的。我们不希望用户停用此功能,因为并非所有 IT 部门都希望这样做。我们发现这个:https://next-auth.js.org/tutorials/avoid-corporate-link-checking-email-provider作为可能的文档,但它似乎不完整。这里有人有这方面的经验吗?谢谢!!

我们尝试了不同的浏览器以及不同的安全功能

next.js outlook next-auth
2个回答
0
投票

经验法则是避免使用不需要操作的链接 - 不要假设最终用户是点击链接的唯一方式。让链接指向需要明确用户操作的页面,例如单击提交表单的按钮 - 链接爬虫不会执行 POST。


0
投票

该文档对我来说似乎相当完整。正如文档中提到的,您只需编辑

/pages/api/auth/[...nextauth].js
文件即可将此代码段添加到函数的最开头:

import type { NextApiRequest, NextApiResponse } from "next"
import NextAuth from "next-auth"

export default async function auth(req: NextApiRequest, res: NextApiResponse) {

  if(req.method === "HEAD") {
     return res.status(200).end()
  }

  ...
}

这实际上将为使用发送到端点的方法

HEAD
的任何 HTTP 请求返回成功的 HTTP 状态,而无需使用电子邮件中提供的身份验证链接。

由于 Outlook 客户端仅向您的链接发送这些

HEAD
请求,因此这应该可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.