2012-01-07 93 views
1

我正在使用Node模塊everyauth進行Twitter驗證。目前,用戶必須使用重定向路徑去/auth/twitter/進行身份驗證。使用Twitter在同一頁面進行身份驗證

問題是重定向路徑重新加載頁面,這打破了我構建的「單頁應用程序」結構。是否可以在「單頁」邊界內使用Twitter進行身份驗證?

回答

1

你不能這樣做,你需要打開一個新頁面(但你可以打開一個彈出窗口,例如使Twitter重定向回到關閉該彈出窗口的頁面)。

+0

退出怎麼辦?目前'/ logout'會導致刷新。 – Randomblue 2012-01-07 22:05:23

+0

註銷更容易,你可以讓自己成爲路由'/ sign_out'並刪除會話:'delete sess.auth;'(你也可以發送JSON響應並使用Ajax將它保存在同一頁面中)。 – alessioalex 2012-01-07 22:17:33

0

不知道這是你在找什麼,我也在構建一個單頁的應用程序。重定向是不可避免的,但用戶轉到Twitter,認證並返回到同一頁面,但我根據用戶狀態加載不同的數據,因此用戶可以獲取通用內容或其保存的內容。

// in server.js 
app.get('/', routes.index); 

// in routes.js, required in server.js 
exports.index = function(req, res){ 
    if(req.loggedIn){ 
    getData(function(data){ 
     res.render('home', { data:, data }) 
    }); 
    } else { 
    res.render('home', { data: false }) 
    } 
}; 

的getData()在我的情況確實給用戶帶來一些檢查,看看他們的訪問級別,然後從預裝我們的API內容,並傳遞到模板的JSON這一點。然後,當應用程序呈現它只是尋找可用的JSON。