所以我尝试在我的nodejs后端服务器中实现Facebook登录功能。出于测试目的,我正在尝试客户端检查登录并获取访问令牌。为此,我遵循了文档,它说要使用 Javascript SDK,并且我遵循了该过程,但有一个问题。
window.fbAsyncInit = function() {
FB.init({
appId : '##############',
autoLogAppEvents : true,
xfbml : true,
version : 'v4.0'
})
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
这是我想要获取用户登录状态的代码,但我收到一条错误消息:
The method FB.getLoginStatus can no longer be called from http pages
我非常了解生产规则,但这是我正在研究的开发模式,但仍然出现错误。我缺少什么吗?有什么我必须做的吗?我在本地主机上运行它并收到错误。
Windows 10 +wsl(Debian)
https://github.com/vercel/next.js/discussions/10935
我认为评论中最简单的解决方案是this:
yarn add --dev local-ssl-proxy
next dev -p 3001 & local-ssl-proxy --source 3000 --target 3001
chrome://flags/#allow-insecure-localhost
并启用该设置。这个解决方案的缺点是
local-ssl-proxy
是一个非常旧的包。但如果您只需要测试一些仅限 HTTPS 的功能,它就可以达到目的。
package.json
中您可以使用以下内容:
"serve": "vue-cli-service serve --https true",
代替:
"serve": "vue-cli-service serve",
效果很好。
将您的计算机 URI 从 X.X.X.X 更改为 localhost。
例如:更改
http://127.0.0.0 ---> http://localhost
react-facebook
时遇到同样的错误。这就是解决我的问题的方法 - 在开发人员仪表板上的元数据上,我单击了左上角的下拉菜单并创建了我的应用程序的测试版本,然后我将我的
appId
替换为测试应用程序之一,它工作了,我得到了一个
accessToken
。除非您创建一个测试应用程序,否则它似乎无法与生产应用程序一起使用