我已经搜索了几个小时,但无法通过Passport或Everyauth找到适用于Express的Facebook登录解决方案。是否有关于nodejs的服务器端oAuth 2.0 FB登录的示例或教程?或者有没有办法使用默认的快速会话,让护照只处理初始身份验证而不进行序列化/反序列化?
答案 0 :(得分:1)
我编写/维护express-stormpath库,为你执行此操作。
这是一个示例应用(完整的):
var express = require('express');
var stormpath = require('express-stormpath');
var app = express();
app.use(stormpath.init(app, {
application: 'https://api.stormpath.com/v1/applications/xxx',
secretKey: 'some_long_random_string',
enableFacebook: true,
social: {
facebook: {
appId: 'xxx',
appSecret: 'xxx',
}
},
}));
app.listen(3000);
显然,这需要您创建Facebook应用并设置一些配置选项,此文档解释了如何执行此操作:https://docs.stormpath.com/nodejs/express/product.html#use-facebook-login
希望有帮助=)
答案 1 :(得分:0)
这将为您提供警报数据,使用FB AppId
<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js"></script>
<script>
var facebookAppId = 'XXXXXX';
var _fBAccessToken ='';
window.fbAsyncInit = function() {
FB.init({
appId: facebookAppId,
xfbml: true,
version: 'v2.0',
status: true,
cookie: true,
oauth: true
});
FB.getLoginStatus(function(response) {
if ((response.status)&&(response.status=='connected')) {
userId = response.authResponse.userID;
_fBAccessToken = response.authResponse.accessToken;
FB.api('/me', function(responsed) {
alert(JSON.stringify(responsed))
},{scope:'public_profile,email'});
})
</script>
答案 2 :(得分:0)
我设法找到的有关香草node.js /快速身份验证的唯一有用文档是Facebook的:https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/
首先必须在https://developers.facebook.com/apps设置应用程序(用于dev / localhost的测试应用程序和将要运行的产品应用程序),但是一旦完成,这就是标准的oauth过程,只有几个facebook特定选项