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 маршрут.

Другие вопросы по тегам