javascript - 如何在 angularjs 应用程序中实现安全 (!) 身份验证系统?

标签 javascript security authentication cookies angularjs

我是 angularjs 的新手...

我阅读了文档,并完成了教程;我自己也尝试了其他东西,我开始明白了。

现在我想知道如何制作一个安全的身份验证系统

简单的部分:没有代码,我将描述我的代码执行的操作:

I've a classic form: username, and password text input.

The user fills the form, and press ENTER.

An ajax request starts, and the response is a JSON telling me something like "ok i know you" or "i don't know who you are".

我现在需要的是在我的应用程序的不同 View 之间维护访问者的登录状态(或未登录)。

我在网上看到,为了达到这个目的,有人设置了一个变量($scope.isLogged = true),有人使用cookies;但是 javascript 变量和 cookie 可以使用 firebug 或类似的开发工具轻松编辑。

...最后是问题:

那么,您有什么建议可以在 angularjs 应用中实现安全的身份验证系统吗?

最佳答案

你不能在angularjs中授权任何东西,因为用户对执行环境(即浏览器)有完全的控制权。每张支票、案例、if——任何你能想到的——都可以被篡改。有一些 javascript 库使用非对称 key 执行本地加密以在某种程度上安全地存储本地数据,但它们并不是您要找的,真的。

你可以,而且你应该,授权服务器上的东西——你在普通应用程序中的标准方式——使用 session ;不需要特殊代码,ajax 调用使用普通 session cookie。应用程序不需要知道它是否经过身份验证。它只需要检查服务器的想法。

从您的 angularjs 应用程序的 Angular 来看,“登录”或“注销”对用户来说仅仅是一个 gui 提示。

关于javascript - 如何在 angularjs 应用程序中实现安全 (!) 身份验证系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14791361/

相关文章:

python - 摧毁一个 Flask Restful token

java - 尽管使用了正确的公钥和签名文件,但签名未得到验证

Azure Powershell - 自动化登录-AzureRmAccount AD 登录 - 用于 Azure 功能

javascript - 如何在javascript中查找内存泄漏

javascript - 视频结束时提交表格

javascript - 访问 setTimeout promise 的值而不等待它

javascript - 捕获 flickity 轮播点击事件

php - 使用注册表单将密码存储在数据库中的安全方法是什么?

c# - 如何使用 ASP.NET MVC4 登录?

authentication - WebSecurity.GeneratePasswordResetToken 返回错误(但用户存在!)