2016-11-17 1 views
0

私は両方のFacebookのために働いているURIエンドポイント認証を持っています&私のエクスプレスアプリ内の別のミドルウェアを介してGoogle。 Facebookはパスポートのfacebook-token戦略を使用していましたが、googleではnodejs client libを使ってGoogle API用に独自のミドルウェアを作成しました。私が望むのは、これらのミドルウェアを使用してURIエンドポイント上のユーザーを認証することです。Express - facebookとGoogleを使用してURIエンドポイントを認証します

/* 
//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 
} 

しかし、私はどのように2つの同じuriを組み合わせますか?それ以外の場合は、Google & fbのURIを別に使用する必要があります。 Plsアドバイス。 Pls私はGoogleの戦略を実装しようとしたことに注意し、それは働いていない。

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

とサーバ側のチェック、ユーザーの

がどのプロバイダを使用しているし、それに応じてメソッドを呼び出します。

答えて

0

あなたは、以下のようにプロバイダーとして指名ユーザーオブジェクトのための1つの配列フィールドを使用することができます。たとえば:Facebookのサービスプロバイダとユーザーの要求は、その後それを行うに

function handleFacebookAuthentication(){ 
    //Logic 
} 
+0

問題を呼び出す場合

Googleのサービスプロバイダとユーザーの要求は、明示ミドルウェアが必要である

function handleGoogleAuthentication(){ // Logic } 

を呼び出している場合この形式の関数(req、res、next){}になるためには、passport.authenticate( 'facebook' ..)のようなfacebook-token戦略を使って認証するためにpassportオブジェクトを渡す必要もあります。しかしそれはそれを許さない。私が持っている他のオプションは、Googleとfbの両方のための別個のURIエンドポイントを作成し、ユーザーがサインインしたものに基づいてリクエストを個別にルーティングすることです - facebook、google –

関連する問題