我必须为Angular Client执行Login API。我需要的唯一端点是登录。数据不是很明智,我只想要一个简单的解决方案,足够安全,知道任何有不良意图的人都可以轻易破解它。 我有一些代码,但我确定它不好
<?php
$user = "";
$pass = "";
$user = $_POST['username'];
$pass = $_POST['password'];
$servername = "localhost";
$usernameDB = "root";
$passwordDB = "";
// Create connection
$conn = new mysqli($servername, $usernameDB, $passwordDB, "myDb");
header( "Access-Control-Allow-Origin: *");
header( "Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header("Content-Type: application/json; charset=UTF-8");
header ("Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT");
// Check connection
if ($conn->connect_error) {
die('{
"status": false,
"error":'.$conn->connect_error .'
}' );
}
$sql = "SELECT ID, Identificacion, Usuario, Contrasena FROM Usuarios ".
"WHERE RptReparto_Habilitado = 1 and ".
"Usuario = '". $user . "' and ".
"Contrasena = '". $pass . "'";
$res = $conn->query($sql);
if ( $row = $res->fetch_assoc() ) {
echo '{ "status": true,"id":'. $row['ID'] .' , "username": "'.$row['Usuario'].'", "identificacion": "'. $row['Identificacion'] . '"}';
} else {
echo '{
"status": false,
"error": "'.$conn->error .'"
}';
}
$conn->close();
?>
我想实现Slim php,我的同事推荐。 也许在角度客户端中散列密码。实现JSON创建的功能,并检查SQL注入。
最便宜的选择是什么?我可以轻松地在普通PHP中实现所有这些,还是更容易实现库?
谢谢!
答案 0 :(得分:1)
我建议你使用JWT。 https://jwt.io/ 这是一个仅基于令牌的身份验证系统。 首先,用户使用他的登录进行身份验证 仅使用Web令牌保持“会话”打开。 必须发送令牌,以便在http标头中使用angular进行所有请求。
使用现有的库来更容易