ServiceStack 4.0.30 - CredentialsAuthProvider - Не устанавливается состояние 401 для неудачной аутентификации
Я только что обновился до 4.0.30 и заметил, что /auth? Username=xxxx&password=xxxx возвращает статус 200 независимо от того, успешно ли аутентифицирован пользователь или нет. Даже пытался использовать PostMan. Что, если вообще что-то изменилось, поскольку я не вижу ничего в последних журналах изменений?
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/credentials
маршрут.