试图让Facebook登录到我的下一个应用程序-auth/ nextjs。
当我选择一个Consumer App并且它处于开发模式时,所有这些都可以工作。
但是,我想使用App Business App的特性。Facebook中的业务应用程序没有开发模式/生产模式。相反,一切都是通过访问级别来管理的。本清单中的前两种类型是我所指的:

现在,当我试用一款消费者应用程序时,一切都很好。然而,当我使用商业应用程序时,它对我不起作用。我得到以下错误:
URL阻止此重定向失败,因为重定向URI在应用程序的客户端OAuth设置中没有白名单。确保客户端和web OAuth登录都已启动,并将所有应用程序域添加为有效的OAuth重定向URI。

但是,我不能将URL添加到有效的OAuth重定向URL,因为Facebook告诉我本地主机是在开发模式下自动批准的,所以我不允许添加它。但这很奇怪,因为商业应用没有“开发模式”。
请参阅以下2幅图片:


我发现这有点奇怪,所以我将它部署到生产中,并对其进行了测试--这是可行的。
因此,消费者应用程序+本地主机工作,业务应用程序+本地主机不工作,业务应用程序+生产工作。
有人知道facebook上的本地主机+商业应用程序的问题所在吗?我真的很喜欢测试开发中的东西,而不是一直把所有的东西都推向生产。
发布于 2022-02-06 07:28:15
我唯一能想到的就是尝试使用shaHmac512加密和签名您的令牌,并使用十六进制进行消化。
我确实记得我不得不在本地做这个。
并为开发者获取facebook业务/facebook的“长寿”访问令牌。
const accessToken = process.env.FACEBOOK_ACCESS_TOKEN ?? "";
const secretKey = process.env.FACEBOOK_SECRET ?? "";
function signHmacSha512(key: string, secret: string) {
key = accessToken;
secret = secretKey;
const hmac = crypto.createHmac("sha512", key);
const signed = hmac.update(Buffer.from(secret, "utf-8")).digest("hex");
return signed;
}
console.log(JSON.stringify(signHmacSha512(accessToken, secretKey), null, 2));没有人保证它一定会起作用,在过去的9个月里,我在他们变成元货币之前就这样做了。
可能值得通过Facebook登录消息:"URL阻塞:这个重定向失败,因为重定向URI没有在应用程序的客户端OAuth设置中白名单。“查看这个线程。
https://stackoverflow.com/questions/70997293
复制相似问题