2016-11-17 4 views
0

У меня есть аутентификация конечной точки URI, работающая как для facebook & google в моем экспресс-приложении через отдельные посредники. Facebook использует стратегию facebook-token для паспортов, тогда как для google я написал свое собственное промежуточное программное обеспечение, используя nodejs client lib для google API. Я хочу, чтобы аутентифицировать пользователя в конечной точке URI, используя оба этих промежуточного программного обеспечения.Экспресс - Аутентификация конечных точек URI с помощью facebook и Google

/* 
//google controller file 
module.exports = function(req,res,next){ 

} 
*/ 
googlectrl = require('google controller file'); 
//this works fine 
app.get('someurl',googlectrl,function(req,res){ 
//google user authenticated 
} 

//this works fine too 
app.get('someurl',passport.authenticate('facebook-token',{session=false}),function(req,res){ 
//google user authenticated 
} 

Но как я могу объединить эти два для одного и того же uri. В противном случае мне нужно использовать отдельный URI для google & fb. Консультация Pls. Заметьте, я пробовал реализовать стратегию Google, и она не сработала.

ответ

0

Вы можете использовать одно поле массива для пользовательского объекта с именем, как поставщиков, как показано ниже:

{ 
    "name": "asdasd", 
    "providers": [ 'google'] 
} 

И на серверной стороне проверки пользователь использует какой-провайдера и вызвать метод соответственно. Например:

Если пользователь запрашивает с поставщиком услуг Google, то звоните

function handleGoogleAuthentication(){ 
    // Logic 
} 

И если пользователь запрашивает с поставщиком услуг facebook затем вызвать

function handleFacebookAuthentication(){ 
    //Logic 
} 
+0

Этот вопрос в этом, что это экспресс промежуточного слоя требует быть в этой функции формата (req, res, next) {}, и мне также необходимо передать объект паспорта для аутентификации с использованием стратегии facebook-token, такой как passport.authenticate ('facebook' ..). Но это не позволяет. Другой вариант, который у меня есть, - создать отдельные конечные точки URI для google & fb и маршрутизировать запросы отдельно на основе того, что пользователь подписывает в facebook, google –

Смежные вопросы