登录

时间:2018-04-25 21:17:17

标签: php json ajax login response

我正在开发自己的PHP框架(顺便说一下,它工作得很好),现在我正在开发一个登录系统。这没问题,我已经完成了它,我有一个数据库,一个注册,登录表单,注销等。

但是现在,当您填写登录表单并单击“登录”时,会发送ajax,服务器(php)会验证用户(用户名和密码)并发回响应。现在响应只是一个数字:

0 - 正确登录。

1 - 用户名不正确。

2 - 用户名正确,但密码不正确。

这完全符合其目的,但我确信这不是正确/专业的方式,我刚刚发明了这个。所以我想知道哪一个是登录验证的正确答案。

例如,许多网站使用带有“错误代码”和消息的json响应,但我真的不知道它是如何工作的。此外,这真的会影响吗?或者没关系?这有什么实际用途?安全?与其他图书馆和服务混合?或者我目前的系统已经很好了?

/ ****** UPDATE ****** /

你们告诉我,我不应该说用户名/电子邮件是正确的,但密码不是。好的,你是对的,我同意,我会纠正它,并感谢你的参与和帮助。

然而,这不是问题,答案应该帮助其他人同样怀疑:回应。

我发现了这个,非常有用:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

这个函数(PHP> 5.4):http_response_code($ code_number);

从技术上讲,它将是:

function my_ajax_function( )
{
    //try login

    if (login_correct)
        http_response_code(200);  // 200 = OK
    else
        http_response_code(401);   // 401 = Unauthorized

    // ajax response is independent of the http response
    die("whatever I want");
}

2 个答案:

答案 0 :(得分:-2)

如果一切正常,ajax回复等待为200,你可以退货。你的服务器是一条消息,并在成功ajax回复你读取服务器的回复然后如果有什么错误你显示详细信息。错误,例如你可以返回1登录确定, - 1返回邮件。不存在,并且 - 2对于密码不行,我编辑,你可以在加载表单时创建一个令牌,这将在服务器上的ajax调用中验证,这样你添加一个安全点,你也可以在服务器直接完全可以重定向到主页qbere用户被记录

答案 1 :(得分:-2)

我不会回复用户名是正确的,但密码不是。这让黑客知道他们的中途。回应应该是真是假。他们通过了身份验证,但他们没有。

我在系统上处理身份验证的方式;如果凭据为false,则拒绝访问,如果凭据正确,则生成会话密钥,然后将用户移至下一步。然后,每个页面请求都会检查会话密钥以查看它是否仍然有效。

更新到您的更新;这是一个HTTP响应代码,表示找不到页面,即服务器上没有文件。如果你想发送一个http响应401将是它。 (401 =未经授权)