在没有任何后端调用或数据库的情况下验证AngularJS中的用户

时间:2016-02-08 08:43:50

标签: javascript angularjs validation single-page-application

我使用AngularJS创建了一个静态网站。我没有使用任何后端调用或数据库。但我希望有一个用户输入密码的登录页面(密码与网站用户相同,因为该网站仅供内部使用),如果密码正确,则我将用户带到主页,否则将其带回登录scree。我正在使用Apache Web Server。有没有办法在没有Tomcat / Database / Cookies等的AngularJS中实现安全的验证/认证?

注意:我不想以任何用户公开的方式在任何.js文件中存储用户名和密码。

由于

3 个答案:

答案 0 :(得分:4)

真实世界等同于仅使用#JavaScript进行输入验证。

enter image description here

抱歉,讽刺。

答案 1 :(得分:0)

如果没有服务器,就没有完全证明这一点的方法。但是,您可以加密密码和用户名,然后将它们存储在cookie中。有很多javascript库可以实现这一目标。 示例教程:Encrypt cookies in browser.

这种方式不会暴露给用户。

答案 2 :(得分:0)

一种选择是在您的应用中添加HTTP基本身份验证。如果您使用Aerobatic托管您的应用程序,您可以像这样在package.json中配置它(请注意,您可以选择将auth添加到特定目录):

https://www.aerobatic.com/docs/http-basic-authentication

免责声明:我是Aerobatic的联合创始人

{
  "_aerobatic": {
    "router": [
      {
        "module": "basic-auth",
        "path": "/protected",
        "options": {
          "username": "$BASIC_AUTH_USERNAME",
          "password": "$BASIC_AUTH_PASSWORD",
          "loginPage": "login.html",
          "maxFailedLogins": 5,
          "failedLoginPeriod": 600
        }
      },
      {
        "module": "webpage"
      },
      {
        "module": "custom-errors",
        "errors": {
          "403": "403.html"
        }
      }
    ]
  }
}