我成功地使用Node.js的+快速+ Everyauth(https://github.com/abelmartin/Express-And-Everyauth/blob/master/app.js)從我的應用程序登錄到Facebook,Twitter等。使用Everyauth/Express和多種配置?
我試圖繞到我的頭的問題是,Everyauth似乎是「配置和忘記。」我設置了一個everyauth對象,並將其配置爲用作express的中間件,然後將其忽略。例如,如果我想創建一個移動Facebook登錄我做的:
var app = express.createServer();
everyauth.facebook
.appId('AAAA')
.appSecret('BBBB')
.entryPath('/login/facebook')
.callbackPath('/callback/facebook')
.mobile(true); // mobile!
app.use(everyauth.middleware());
everyauth.helpExpress(app);
app.listen(8000);
這裏的問題: 移動和非移動客戶端將連接到我的服務器,我不知道這是連接到連接已完成。更糟糕的是,我需要支持多個Facebook應用程序ID(並且,我不知道在客戶端連接並部分解析輸入之前我會使用哪一個)。因爲everyauth是一次配置的單例,所以我看不到如何根據所做的請求對配置進行這些更改。
看起來我需要創建某種中間件,它在Everyauth中間件之前配置everyauth對象,以便everyauth隨後使用正確的appId/appSecret/mobile參數。我不知道如何去這個...
建議?
這裏是我迄今爲止最好的主意,但它似乎可怕: 使用每個不同的entryPath 每一個可能的配置創建everyauth對象...
如何使所有everyauth代碼到另一個文件,並在我們的中間件需要? 'app.use(function(req,res,next){'./ auth/facebook').init(req,res,next); });' facebook文件將包含所有與everyauth。 'findOrCreateUser','return promise'等... –