带有 Angular JS 的 mySQL 数据库的用户登录系统?
Posted
技术标签:
【中文标题】带有 Angular JS 的 mySQL 数据库的用户登录系统?【英文标题】:User login system with mySQL database with Angular JS? 【发布时间】:2014-06-07 22:38:27 【问题描述】:我正在尝试创建一个用户登录系统,其中每个用户都有一个密码、一个用户名和一个级别(IE Admin 或 Master)。到目前为止我做了什么:
使用 php 创建了一个 mysql 数据库,并在表中创建了相关字段。
制作了一个简单的 Angular JS 页面。
我正在尝试链接数据库和页面,以便我可以根据存储在 mySQL 表的“密码”部分中的所有数据检查用户在登录输入字段中的输入。
知道如何实现这一目标吗?由于我是 Angular(和 mySQL!)的新手,请提供最简单、最直接的答案
谢谢!
【问题讨论】:
您需要创建一些服务器端代码(在您的情况下,可能在 php 中)来执行实际的数据库操作,然后使用 Angular 的 $http 或 $resource 调用此代码。 如何创建一个带角度的表单,将数据发布到 php 脚本并验证登录数据?但是你自己试试吧;)如果你有一些代码和问题,那就回来再问吧! 我将尝试使用 $_POST 获取表单输入,然后将其连接到 Angular。感谢大家的迅速回复! :) 我很困惑。我要做的就是在按下“登录/提交”按钮时针对我的数据库表测试用户输入的内容(他们的用户名)。如果找到用户名,然后检查他们的密码是否正确。如果有人可以用代码 sn-ps/ 示例以极其简单的术语将其拼写出来,我将非常非常困惑,如果可能的话,我将永远感激不尽!谢谢:) 【参考方案1】:您不应该在 Angular 页面上登录,因为所有相关数据都由 javascript 处理,可以轻松停止、调试和分析。
更好的方法是:
-
创建一个普通的 index.php,向用户显示一个登录表单。
在提交时检查您的数据库的有效性。
如果用户有效,则启动会话并
header
进入实际的 Angular 应用页面。
检查这是否是有效的php session
的唯一方法是在您的REST
调用中,通过角度http
服务调用与数据库相关的php 脚本。
所以每次对REST api
的读/写访问都应该检查,如果这个用户真的被允许在 php 脚本中执行这个 db 操作。
如果检查失败,header
回到登录页面或一些“知道了!”页面。
这样攻击者可能能够看到 Angular 应用程序的 js 代码(如果他以某种方式掌握了实际地址)但这对他来说完全没用,因为只要他没有看到实际数据,他就永远看不到实际数据'没有启动一个有效的php session
。而且数据是您要保护的,而不是应用程序的脚本。
简而言之:混合标准 PHP 验证和 Angular。允许黑客访问您的页面,但永远不要向他们展示您的任何基础数据。一旦有人试图弄乱你的数据,就把他踢出去。
这与我给here的答案几乎相同
在 PHP 和 Angular 站点中搜索标记的关键字以掌握其背后的想法。
【讨论】:
谢谢!我会调查一下,让你知道我的进展如何。 :)以上是关于带有 Angular JS 的 mySQL 数据库的用户登录系统?的主要内容,如果未能解决你的问题,请参考以下文章
Angular JS将带有$resource的数组数据发送到.NET API
Angular.Js 性能、大型数据集、ng-repeat、带有过滤器和双向绑定的 html 表