2016-10-25 109 views
0

在客戶端使用angularjs,在服務器端使用c#。 我想了解如何創建一個網站與用戶。網站保留用戶信息

我知道如何將數據存儲在數據庫中。

我真正的問題是網站如何記住用戶會話 刷新後。 所以用戶不需要再次登錄。

謝謝你們。

回答

1

Microsoft爲此專門爲.NET Web API項目創建了一個JWT(JSON Web令牌)包。而且由於您使用的是Angular.js,因此使用JSON是完美的。

有大量的教程可以幫助您理解JWT如何工作並安全地保存這樣的用戶會話:https://scotch.io/tutorials/the-anatomy-of-a-json-web-token

這個想法是,你的服務器發送你的客戶端/用戶一個長的加密字符串。客戶端將其保存在他們的Cookie中,並在需要驗證用戶時將其發送到服務器。

有關加密的大部分複雜細節不需要擔心。只需按照設置JWT令牌交換的教程即可。

+0

感謝您的幫助! –

1

回到目前,我們使用Cookie來完成這件事。

在今天的Restful html5世界中,我們可以使用其他幾個選項。

Websql,Localstorage,IndexedDB。

也許你正在使用類似JWT的東西來存儲你用來進行認證的API調用的認證令牌。

要走的路或者我所做的就是將該令牌存儲在localStorage中,然後在每次調用API時注入。

然後在角度運行部分,我檢查用戶是否已通過身份驗證,檢查是否存儲令牌,如果不是,則發送到登錄頁面。

angular.module('Scope', ['ui.router', 'ngStorage']) 
    .run(function($localStorage, $state){ 
     if (!$localStorage.authenticationToken) { 
      $state.go('login'); 
     } 
    } 
}); 

在這個例子中,每一個應用程序重新加載時間,角度執行run函數,並檢查是否我們已經存儲的道理,如果不是,發送用戶的登錄網頁。

+0

偉大的解決方案! –