在客户端使用angularjs,在服务器端使用c#。 我想学习如何与用户一起创建一个网站。
我知道如何在db中存储数据。
我真正的问题是网站如何记住用户会话 刷新后。 因此用户无需再次登录。
谢谢你们。
答案 0 :(得分:1)
回到过去,我们使用cookies来做到这一点。
在今天的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');
}
}
});
在这个例子中,每次app重新加载时,angular执行run函数,并检查我们是否存储了令牌,如果不存在,则将用户发送到登录网页。
答案 1 :(得分:1)
Microsoft专门为此目的为.NET Web API项目创建了一个JWT(JSON Web Token)包。因为您正在使用Angular.js,所以使用JSON是完美的。
有很多教程可以帮助您了解JWT的工作原理并安全地保存用户的会话,如下所示:https://scotch.io/tutorials/the-anatomy-of-a-json-web-token。
这个想法是您的服务器向您的客户端/用户发送一个长加密字符串。客户端将其保存在cookie中,并在您想要验证用户时将其发送到您的服务器。
大多数有关加密的复杂细节都不需要担心。只需按照教程设置JWT令牌的交换即可。