AngularJS -使用md5 password检查登录服务中的用户/密码
AngularJS - Check user/password in Login Service using md5 Password
我使用angularjs创建了一个登录-我只是试图将它传递给我的服务user.php来检查凭据,然后在经过身份验证后转发。问题是,我的密码是用md5加密的,我试图弄清楚如何将这种编码添加到我的数据从服务发送。
登录表单- login.html
<div class="bs-example">
<form role="form" name="form1">
<div class="pgelogo"></div><p></p>
<div class="form-group">
<p>Welcome : <span>{{user.userid}}</span></p>
<label for="exampleInputEmail1">Userid</label>
<input type="text" placeholder="Enter name" class="form-control"
ng-model="user.userid" required>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" name="pass" placeholder="Password"
id="exampleInputPassword1" class="form-control" ng-model="user.pass"
required>
</div>
<button class="btn btn-default" type="submit" ng-click="login(user)"
ng-disabled="form1.$invalid">Submit</button>
<p>{{msgtxt}}</p>
</form>
</div>
controller - loginctrl.js
'use strict';
app.controller('loginCtrl', ['$scope','loginService',
function ($scope,loginService) {
$scope.msgtxt='';
$scope.login=function(data){
loginService.login(data,$scope); //call login service
};
}]);
指令- logindrc.js
'use strict';
app.directive('loginDirective',function(){
return{
templateUrl:'partials/tpl/login.tpl.html'
}
});
service - loginservice.js
'use strict';
app.factory('loginService',function($http, $location, sessionService){
return{
login:function(data,scope){
var $promise=$http.post('data/user.php',data);
//send data to user.php
$promise.then(function(msg){
var uid=msg.data;
var pass=msg.data;
if(uid && pass){
//scope.msgtxt='Correct information';
sessionService.set('uid',uid);
//sessionService.set('lvl',level);
$location.path('/home');
}
else {
scope.msgtxt='incorrect information';
$location.path('/login');
}
});
},
logout:function(){
sessionService.destroy('uid');
//sessionService.destroy('lvl');
$location.path('/login');
},
islogged:function(){
var $checkSessionServer=$http.post('data/check_session.php');
return $checkSessionServer;
/*
if(sessionService.get('user')) return true;
else return false;
*/
}
}
});
**user.php -检查用户身份验证
ini_set("display_errors",1);
error_reporting(E_ALL);
//connect to db
require "../protected/db.php";
//$user=json_decode(file_get_contents('php://input'));
$user = $_SESSION['uid']=uniqid('ang_');
//$user = $_POST['uid'];
$pass = md5($_POST['pass']));
session_start();
if(isset($user) && isset($pass))
{
//get userid and level from users table according to
username and password entered
$sql = "SELECT userid,lvl FROM dbo.users WHERE userid = ? AND psw = ?";
$params = array($user, $pass);
$stmt = sqlsrv_query($conn,$sql,$params);
//if query does not work, return false
if($stmt === false){
die( print_r( sqlsrv_errors(), true));
}
$row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
if($row)
{
do{
//store users session for angular to handle
$_SESSION['uid']=uniqid('ang_');
$_SESSION['level'] = $row['lvl'];
//update the userlogin table with active user sesssion
$rec = "INSERT INTO dbo.user_login (
user_id,
time)
VALUES
(?,getdate())";
$recparams = array($user);
$s = sqlsrv_query($conn,$rec,$recparams);
if( $s === false )
{
die( print_r( sqlsrv_errors(), true));
}
} while( $row = sqlsrv_fetch_array( $stmt ) );
}
session_destroy();
}
我能够通过简单的用户名密码进行身份验证,但我需要对密码进行编码,以检查我的数据库中的值。我得到了错误500服务错误,这意味着服务器端发生了一些事情…只是无法确定。如果有任何angularjs高手能帮上忙,我将不胜感激。
整合此模块:http://ngmodules.org/modules/angular-md5
关于登录表单:login form - login.html
<input type="password" name="pass" placeholder="Password"
id="exampleInputPassword1" class="form-control" ng-model="pass" required>
然后在控制器上:controller - loginctl .js
app.controller('loginCtrl', ['$scope','md5','loginService', function ($scope,md5,loginService) {
$scope.$watch('pass', function() {
$scope.user.pass = md5.createHash($scope.pass || '');
});
...
}]);
这就解决了我的问题
相关文章:
- 一个密码测试程序,如果存在空格,它会提醒用户
- 正确传输和保护用户'web应用程序的密码
- Firebase电子邮件/密码创建用户安全
- 更改错误文本“用户 ID 或密码不正确”
- 如何为在客户端检查其密码的用户创建登录页面
- Javascript 密码不应包含用户的帐户名或用户全名中超过两个连续字符的部分
- 正在云代码中检索用户密码
- 在客户端JavaScript中存储Web应用程序的用户密码 - 这是安全的吗?
- 在 document.ready 上保存的用户/密码为空
- 流星:在不注销的情况下更改用户密码
- 解析错误400(错误请求){代码:201,消息:“缺少用户密码”}
- 确保HTTP API的安全-无用户密码提示,避免暴露私钥
- 输入Hash以重置密码,而不是实际用户密码
- 用户密码经过散列和加盐处理,试图允许用户在前端更改密码
- 禁用默认用户/密码浏览器弹出
- 解析sessionToken在用户密码更新时被撤销
- AngularJS -使用md5 password检查登录服务中的用户/密码
- 创建带有用户密码的弹出窗口作为对话框
- Node.js Mongoose允许你通过用户/密码连接到数据库吗?
- 在注册或编辑前验证用户密码