debug discord login (3x)

This commit is contained in:
dalbodeule 2024-08-11 15:56:47 +09:00
parent b38080111c
commit dc7e05781f
No known key found for this signature in database
GPG Key ID: EFA860D069C9FA65

View File

@ -98,6 +98,35 @@ val server = embeddedServer(Netty, port = 8080, ) {
} }
routing { routing {
route("/auth") { route("/auth") {
// discord login
authenticate("auth-oauth-discord") {
get("/login/discord") {
}
get("/discord/callback") {
val principal = call.principal<OAuthAccessTokenResponse.OAuth2>()
val session = call.sessions.get<UserSession>()
val user = session?.id?.let { UserService.getUserWithNaverId(it)}
if(principal != null && session != null && user != null) {
val accessToken = principal.accessToken
val userInfo = getDiscordUser(accessToken)
val guilds = getUserGuilds(accessToken)
userInfo?.user?.id?.toLong()?.let { id -> UserService.updateUser(user, id) }
call.sessions.set(UserSession(
session.state,
session.id,
guilds.map { it.id }
))
} else {
call.respondRedirect(getFrontendURL(""))
}
}
}
// naver login
authenticate("auth-oauth-naver") { authenticate("auth-oauth-naver") {
get("/login/discord") { get("/login/discord") {
@ -125,32 +154,8 @@ val server = embeddedServer(Netty, port = 8080, ) {
call.respondRedirect(getFrontendURL("")) call.respondRedirect(getFrontendURL(""))
} }
} }
authenticate("auth-oauth-discord") {
get("/login/discord") {
} // common: logout
get("/discord/callback") {
val principal = call.principal<OAuthAccessTokenResponse.OAuth2>()
val session = call.sessions.get<UserSession>()
val user = session?.id?.let { UserService.getUserWithNaverId(it)}
if(principal != null && session != null && user != null) {
val accessToken = principal.accessToken
val userInfo = getDiscordUser(accessToken)
val guilds = getUserGuilds(accessToken)
userInfo?.user?.id?.toLong()?.let { id -> UserService.updateUser(user, id) }
call.sessions.set(UserSession(
session.state,
session.id,
guilds.map { it.id }
))
} else {
call.respondRedirect(getFrontendURL(""))
}
}
}
get("/logout") { get("/logout") {
call.sessions.clear<UserSession>() call.sessions.clear<UserSession>()
call.response.status(HttpStatusCode.OK) call.response.status(HttpStatusCode.OK)