【发布时间】:2021-09-03 13:28:16
【问题描述】:
在 Ktor 上实现 Basic Authentication 并配置 Provider 时,通过返回非 null 来验证 凭据是否合法 Principal,如下例所示:
install(Authentication) {
basic("auth-basic") {
realm = "Access to the '/' path"
validate { credentials ->
if (credentials.name == "fernando" && credentials.password == "foobar") {
UserIdPrincipal(credentials.name)
} else {
null
}
}
}
}
如果凭据无效并返回 null,则 Ktor 通过触发 401 - Unauthorized 自动与客户端通信,这在行为方面是预期的......
但我无法提供/添加任何额外信息,例如问题出在哪里:用户名或密码。
关于如何减轻这种情况的任何想法?
【问题讨论】:
-
你试过StatusPages吗?
-
非常感谢您的提示。我通过使用 [StatusPages][1] 插件来适当地响应任何故障状态来解决。另一个提示是不要忘记传递相同的
HttpStatusCode.Unauthorized,否则您的响应将包含您的对象但将包含200代码。 [1]:ktor.io/docs/status-pages.html
标签: kotlin authentication server backend ktor