我已经搜索了好几个小时,但是找不到一个不使用Passport或Everyauth的Express上Facebook登录解决方案。是否有关于nodejs的服务器端oAuth 2.0 FB登录的示例或教程?或者有没有一种方法可以使用默认的Express会话,并让passport仅处理初始身份验证而无需序列化/反序列化?
我编写/维护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
希望有所帮助 =)
这将为您提供有关警报的数据,使用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>
我找到的关于原始的node.js / express身份验证的唯一有用文档是Facebook的:https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/
首先,您必须在https://developers.facebook.com/apps上设置应用程序(用于开发/本地主机的测试应用程序和将要上线的生产应用程序),但一旦完成,它就是标准的OAuth过程,只有一些Facebook特定选项。