【发布时间】:2019-10-28 18:33:47
【问题描述】:
我想使用会话 cookie 进行 Ktor 身份验证,目前我拥有的是:
private const val SEVER_PORT = 8082
private const val SESSION_COOKIE_NAME = "some-cookie-name"
data class AuthSession(
val authToken: String
)
fun main() {
embeddedServer(Netty, port = SEVER_PORT, module = Application::basicAuthApplication).start(wait = true)
}
fun Application.basicAuthApplication() {
install(Sessions) {
cookie<AuthSession>(SESSION_COOKIE_NAME, SessionStorageMemory()) {
cookie.path = "/"
}
}
install(DefaultHeaders)
install(CallLogging)
install(Authentication) {
session<AuthSession> {
validate { session ->
// TODO: do the actual validation
null
}
}
}
routing {
authenticate {
get("/") {
call.respondText("Success")
}
}
}
}
但每次我这样做时:
curl -v localhost:8082
我得到一个 HTTP 200 和响应“成功”
我预计会收到 HTTP 401 Not authorized 或类似情况。
有人可以在这里告诉我如何使用 Ktor 进行正确的会话 cookie 身份验证吗?
谢谢
【问题讨论】: