ServiceStack 4.0.30 - CredentialsAuthProvider - 未在失败的身份验证上设置401状态

时间:2014-08-19 19:53:54

标签: servicestack servicestack-auth

我刚刚更新到4.0.30并注意到/ auth?username = xxxx& password = xxxx返回200状态,无论用户是否成功通过身份验证。甚至尝试使用PostMan。什么,如果有的话,已经改变,因为我在最近的任何更改日志中都没有看到任何内容?

1 个答案:

答案 0 :(得分:1)

如果您未经过身份验证/auth,则返回401 Not Authenticated,例如:

https://httpbenchmarks.servicestack.net/auth

AuthenticateService允许您使用Get(Authenticate request)请求进行身份验证,但如果您提供的用户名或密码不正确,则会返回401 Invalid UserName or Password,例如:

https://httpbenchmarks.servicestack.net/auth?username=xxx&password=xxx

但您可以使用正确的用户名和密码登录:

https://httpbenchmarks.servicestack.net/auth?username=test@test.com&password=test

在这种情况下,如果您通过身份验证/auth将返回带有摘要会话信息的200,例如:

https://httpbenchmarks.servicestack.net/auth

{
  "UserId": "59",
  "SessionId": "Jtp6IYoTnW460xGNTGSE",
  "UserName": "test@test.com",
  "DisplayName": "Test Test",
  "ResponseStatus": { }
}

注意:您应明确指定要登录的Auth Provider,例如:要使用UserName / Password进行身份验证,您应该使用明确的/auth/credentials路由。