我们昨天推出了我们的产品,一些用户报告说,当他们点击登录的魔术链接时,该链接已过期。这是由 Microsoft 的安全链接引起的。我们不希望用户停用此功能,因为并非所有 IT 部门都希望这样做。我们发现这个:https://next-auth.js.org/tutorials/avoid-corporate-link-checking-email-provider作为可能的文档,但它似乎不完整。这里有人有这方面的经验吗?谢谢!!
我们尝试了不同的浏览器以及不同的安全功能
经验法则是避免使用不需要操作的链接 - 不要假设最终用户是点击链接的唯一方式。让链接指向需要明确用户操作的页面,例如单击提交表单的按钮 - 链接爬虫不会执行 POST。
该文档对我来说似乎相当完整。正如文档中提到的,您只需编辑
/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
请求,因此这应该可以解决问题。