我正在实现一个带有 FB 服务器端登录的网站,步骤如下:
一个简单的按钮触发调用我的后端 API 的 JS 脚本 https://localhost/fblogin
function sendFbLoginData() {
$.get("https://localhost/fblogin", function(data, status) {});
}
在 /fblogin 的后端处理程序中,用户被重定向到 FB 登录对话框以请求权限和访问令牌。
func (ct *LoginController) FbLogin() {
url := "https://www.facebook.com/dialog/oauth?client_id=xxx&redirect_uri=https://localhost/fboauth2cb&response_type=code&scope=public_profile"
ct.Redirect(url, 302)
return
}
在浏览器控制台显示错误消息:
XMLHttpRequest cannot load https://www.facebook.com/dialog/oauth?client_id=xxx&redirect_ur…e_type=code&scope=public_profile. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://localhost' is therefore not allowed access.
谷歌搜索后,我意识到这是一个 CORS 问题。既然我无法改变 Facebook 的行为,我该如何处理这个问题?或者从根本上我以错误的方式进行 fb 服务器端登录?
附:我的环境是 AWS + Beego (golang)
相关分类