passport-facebook 中如何解决 国内服务器 不能和Facebook交互的问题
passport-facebook 是一个验证登录的中间件,在使用过程中,因为要面对国外用户,服务器在国内;在国外的用户想用Facebook验证登录,却因为 墙的原因导致 无法交互,实现登录,如何解决这个问题呢
10 回复
@MiguelValentine 我是想在 passport-facebook 验证策略 里面把 Facebook 的地址 用 proxy 的地址替换 但是 不知道 这些地址是 get 请求 或者 post 请求 参数是什么 所以 一直没有成功,主要是不知道怎么做 proxy 全程转发,希望指点一下。
@chenjiyong 全程指点就太麻烦了。我给段代码你。你自己开悟= =
//现写的,自信写
var url = require('url')
var urlProxy = {
'/a':'https://graph.facebook.com/me'
}
var proxy = function(req,res){
req.actPath = url.parse(req.url).path;
if(urlProxy[req.actPath]){
var option = url.parse(urlProxy[req.actPath]);
var reqB = https.request(option,function(resB){
var list =[]
resB.on('data',function(trunk){
list.push(truck)
})
resB.on('end',function(){
res.write(Buffer.concat(list))
res.end()
})
})
req.on('data',function(trunk){
reqB.write(trunk);
})
req.on('end',function(){
reqB.end();
})
}else{
res.end();
}
}