获取域名请求到我的API端点

时间:2015-09-26 22:05:20

标签: node.js api express oauth-2.0

我正在使用Node + express来构建API。我们的想法是让其他开发人员登录并注册他们的应用程序,以便我可以授权访问我的API端点。

exports = passport.use(new FacebookStrategy({

    clientID: '999999999',
    clientSecret: '999999999',
    callbackURL: "http://localhost:3000/auth/facebook/callback"

},function(accessToken, refreshToken, profile, done) {

    profile.access_token = accessToken;

    db.mongoClient.connect(db.moments, function(err, db){
        var user = db.collection('user');

        user.find({'facebook':profile.id}).toArray(function(err, docs){
            console.log(docs);
        })
    })

    done(null, profile);

}));

我已使用passport facebook strategy进行设置。这允许开发人员登录我的应用程序上的个人资料页面,在那里他们使用我从facebook获得的access_token。我正在使用此access_token允许使用bearer token strategy在我的应用与其应用之间建立连接。

但是,我还想添加另一层安全性。他们应该注册将对我的应用程序进行API调用的域名。这应该保护我免受开发人员将令牌传递给其他开发人员的影响(我的那部分是否正确?)。

  

问题:如何检查他们确实是从注册域名发出请求?

THX,

1 个答案:

答案 0 :(得分:0)

在您的Facebook身份验证后,您知道用户并且您知道他的注册域名。然后从服务器调用注册域中的某个已定义脚本。如果确实是来自该用户的电话,那么他应该返回一些您同意的回复。如果响应正常,则完成身份验证(如果我正确记住某些支付系统对在线商店进行此验证)。

或者更复杂的东西,在facebook认证之后,向注册域名url发送一些临时令牌。然后,用户必须在下次调用时向您发送此临时令牌,并将其交换为最终令牌。

为了确保您的用户在您的服务器调用它们时应该使用https。否则它不可靠。