2015-01-08 4 views
2

В настоящее время я использую NodeJS с модулем Express и Passport-facebook-token для моего приложения iOS. У меня возникают проблемы с этим, потому что служба всегда возвращает ответ 401, хотя мы получаем логику OAuth. Любые идеи с этим кодом о том, почему он продолжает возвращаться 401, хотя он успешно прошел проверку подлинности и пришел к нашему методу handleAuthentiation, но не достиг метода, который вызвал у меня console.log("THIS IS NOT BEING CALLED")?Паспорт-facebook-токен продолжает возвращаться 401

var http = require("http"); 
var express = require("express"); 
var bodyParser = require('body-parser'); 
var database = require('./database.js'); 
var passport = require('passport'), 
    FacebookTokenStrategy = require('passport-facebook-token').Strategy; 

var User = require('./User.js'); 
var app = express(); 

//setup json parsing 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: true})); 

//setup facebook authentication 
passport.use(new FacebookTokenStrategy({ 
     clientID: "2454efafd33r", 
     clientSecret: "323245343" 
    }, 
    function(accessToken, refreshToken, profile, done) { 
     User.handleAuthentication(accessToken, refreshToken, profile, done, function(err, user) { 
      console.log("handleAuthentication user is " + JSON.stringify(user)); 
      console.log("handleAuthentication error is " + JSON.stringify(err)); 
      done(err, user); 
     }); 
    } 
)); 

app.post('/auth/facebook/token', 
    passport.authenticate('facebook-token'), 
    function(req, res) { 

     console.log("THIS IS NOT BEING CALLED"); 

     // do something with req.user 
     res.status(200); 
     res.send(user); 
    } 
); 

http.createServer(app).listen(3000); 

Я пытаюсь отследить звонок кап другие библиотеки, и я не могу показаться, чтобы найти какой-либо метод, который определил success. Я заметил, что метод done сопоставляется для проверки, который затем вызывает success.

ответ

1

понял. Оказывается, я не инициализировал Oauth правильно. Мне нужно было установить следующее:

// Configure Express 
app.use(logger('combined')); 
app.use(cookieParser()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 
app.use(methodOverride('X-HTTP-Method-Override')); 
app.use(session({secret: 'supernova', saveUninitialized: true, resave: true})); 
app.use(passport.initialize()); 
app.use(passport.session()); 
+1

Я получаю ту же проблему, но im использует фреймворк sails.js, какой из этих конфигов сделал волшебство? – simondelliott

+1

@simondelliott сессия и паспорт сделали трюк –