我的客户端是基于 Web 的,带有 NodeJS 服务器。
我最近使用此流程为服务器端应用程序实施了 Google 登录
见https://developers.google.com/identity/sign-in/web/server-side-flow
我现在正在尝试在 Facebook 上实现类似的东西,但是当我查看文档时没有提到 oauth2。
https://developers.facebook.com/docs/facebook-login
我应该使用 Facebook 连接吗?我从哪里获得我的“一次性代码”以便我可以将它发送到我的服务器?
关于这个问题有很多困惑。一些方向将是最受欢迎的。
我想使用facebook api向第三方提供服务.我们可以共享访问令牌吗?如果第三方向我的服务提供用户的访问令牌,即使我的app_id&secret与请求它的应用程序不匹配,我是否可以访问该用户数据?
我是否应该让用户在我的网站上单独执行oauth流程,即使他们已经为其他第三方完成了该流程?
谢谢.
-Ken
我为Facebook制作了一个Perl脚本,但是在一段时间之后它没有用,或者如果我退出了.我认为这是由于访问令牌过期.
有人可以帮助我延长令牌的到期时间吗?
我知道如何使用自定义按钮作为Facebook登录.
现在我想将onlogin
事件绑定到自定义按钮,但我不知道该怎么做.
原始代码
<fb:login-button scope="public_profile,email" onlogin="afterLogin();">
</fb:login-button>
<script>
/* Assume that Facebook SDK loaded asyncronously and initilized */
function afterLogin() {
// Do stuff
}
</script>
Run Code Online (Sandbox Code Playgroud)
我的代码
<button id="cusomized-button" onclick="fbLogin();" onlogin="afterLogin();">
Customized button
</button>
<script>
/* Assume that Facebook SDK loaded asynchronously and initialized */
// Show facebook login modal
function fbLogin() {
FB.login(function() {}, {
scope: 'email,public_profile'
});
};
function afterLogin() {
// Do stuff
}
</script>
Run Code Online (Sandbox Code Playgroud) 这已被多次询问,但似乎没有已知的解决办法,所以我发布这个问题,希望有人确实有解决方法.
我正在使用NodeJS,PassportJS-Facebook.
app.get("/auth/facebook",
passport.authenticate("facebook", {
scope : [ "email" ]
}),
function (req, res) {
});
Run Code Online (Sandbox Code Playgroud)
起初我认为这是一个PassportJS问题,但我当然已经取消了这个选项.
我正在使用的Facebook用户帐户明确指出:
This app needs:
Your basic info
Your email address (xyz@example.com)
Run Code Online (Sandbox Code Playgroud)
这个已知问题的一些链接(尚未解决!):https : //developers.facebook.com/bugs/298946933534016 https://developers.facebook.com/bugs/429653750464521 https://developers.facebook.com/bugs/ 482815835078469
那么,你使用Facebook的OAuth服务吗?如果是这样,你收到用户的电子邮件吗?怎么样?"直"的方式?解决方案?