确保用户在Angular中进行身份验证

时间:2014-01-17 06:27:51

标签: javascript angularjs session authentication cookies

我正在创建一个角度应用,它使用一个名为ng-auth的指令来隐藏/显示基于用户登录状态的元素。例如:

<div ng-auth="! isAuthenticated()">
    <a href="/login">Log-in</a> //Shows if user is not logged in
</div>

<div ng-auth="isAuthenticated()">
    <p>Welcome {{ user }}</p> //Shows if user is logged in
</div>

我必须假设用户完全控制了客户端,并且可以访问我通常会显示的所有“受保护”元素。我知道这涉及分离涉及验证服务器的所有敏感请求的问题。现在,我有几个问题:

  1. 我如何在视图中显示敏感信息?如果不是Welcome {{ user }}我想展示{{ user.sensitiveInformation }},我将如何处理?
  2. 我如何实际使用服务器验证用户?根据我的理解,我应该将包含会话ID的cookie发送到服务器进行验证。但是,什么阻止用户发送别人的cookie?或者欺骗服务器的响应以欺骗客户端显示某些信息。

1 个答案:

答案 0 :(得分:2)

对于这种情况,您可以使用restful身份验证系统。对于每个请求,您将access_token发送到服务器以了解用户是否已登录。例如;

  1. 您的客户在您的登录表单上输入了用户名和密码 按回车。
  2. 发送到服务器并在db。中验证的用户名和密码。
  3. 成功验证后,您可以使用生成访问令牌 用户名和密码并返回客户端。
  4. 在客户端,您可以在本地存储上进行操作。
  5. 此后,您将为每个请求发送该访问令牌,以验证此请求是否属于登录用户。

    有关详细示例,请参阅here

    谷歌搜索:here