我正在开发一个Web应用程序,并且想知道服务器在他想要登录时如何响应客户端(最佳做法是什么)。
客户端以表单(例如用户名,密码)提供其凭据,并向服务器发出POST请求。客户端和服务器之间传输的内容始终采用JSON格式(Content-Type: application/json
)。
这是我的服务器响应客户端的方式:
{"status":"error","message":"Credentials are incorrect."}
。{"status":"ok","message":"Log in success."}
{"status":"ok","message":"User is already logged in."}
我的实施是否被视为不良做法?如果前两个案例的服务器响应只有Status:200
而最后一个案例只有Status:401
吗?
如果凭据无效?例如,客户端向服务器发出POST请求而没有post参数?那么服务器的响应应该是400吗?
答案 0 :(得分:0)
首先,如果你想创建一些基于http的安全apis,你需要在每个调用中进行某种身份验证,这可能是每次调用或某些cookie中查询字符串中的某些会话密钥,或者使用基本标头来传递用户名/每个请求的标头中都有密码。
对于您的问题,您应该返回401 Unauthorized状态代码,并附上您的第1和第1个消息。第二种情况,第三次返回200 OK状态码。它还应该返回404无效的代码,用于无效的帖子参数? (没有用户名)?等