2017-01-13 32 views
0

我有一個node.js web應用程序,我正在努力讓用戶登錄並進行身份驗證。我使用帕格來模板,mysql和express.js。如何告訴客戶他們輸入了錯誤的密碼?

我使用bcrypt來散列密碼,這就是正確的。我的問題在於密碼不正確時應該怎麼做,以及如何在服務器上進行檢查時告訴客戶端。

最初我使用的是socket.io,但我離開了那個。然後,我使用重定向到/login?error=true。現在我正在使用帕格模板,它無法找到視圖。一種解決方案是簡單地重定向到一個全新的頁面,但我覺得我應該能夠在沒有重定向的情況下完成此操作。

我看到res.json(),但是當我使用它時,客戶端呈現它,並且最終得到一個空白頁面,這就是我發送的json。有沒有辦法發送json,所以我可以用json數據客戶端做些什麼,而不是讓它只顯示數據?

將數據從服務器發送到客戶端的最佳方式是什麼,最好不要重定向?

我正在調查AJAX現在,這似乎有潛力。我遇到的問題是,如果我使用res.sendres.json它仍呈現數據,而不是將它傳遞給ajax調用的回調。建議?

+0

注意:不要向用戶指出它是不正確的登錄ID或密碼。 – zaph

回答

0

通常在表達式中,以及您擁有路由的任何文件中,您可以實施auth服務以確保它們已登錄,甚至可以看到其餘的api。通常我會給用戶使用令牌,一旦他們通過認證,我會讓他們看到其餘的。您也可以使用像ui-router這樣的服務併爲您的應用程序創建狀態,如果它們沒有正確的登錄憑據,通常它們會停留在主頁上,這將是重定向。您也可以通過模式或其他方式提醒他們說明無效的電子郵件/密碼。

相關問題