网站保留用户详细信息

时间:2016-10-25 20:03:25

标签: javascript angularjs web-services web

在客户端使用angularjs,在服务器端使用c#。 我想学习如何与用户一起创建一个网站。

我知道如何在db中存储数据。

我真正的问题是网站如何记住用户会话 刷新后。 因此用户无需再次登录。

谢谢你们。

2 个答案:

答案 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令牌的交换即可。