From dc7e05781fe5bc93670bb12f80ec7101b555f362 Mon Sep 17 00:00:00 2001 From: dalbodeule <11470513+dalbodeule@users.noreply.github.com> Date: Sun, 11 Aug 2024 15:56:47 +0900 Subject: [PATCH] debug discord login (3x) --- .../space/mori/chzzk_bot/webserver/Main.kt | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/Main.kt b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/Main.kt index 96b7fc6..3a1c389 100644 --- a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/Main.kt +++ b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/Main.kt @@ -98,6 +98,35 @@ val server = embeddedServer(Netty, port = 8080, ) { } routing { route("/auth") { + // discord login + authenticate("auth-oauth-discord") { + get("/login/discord") { + + } + get("/discord/callback") { + val principal = call.principal() + val session = call.sessions.get() + 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") { get("/login/discord") { @@ -125,32 +154,8 @@ val server = embeddedServer(Netty, port = 8080, ) { call.respondRedirect(getFrontendURL("")) } } - authenticate("auth-oauth-discord") { - get("/login/discord") { - } - get("/discord/callback") { - val principal = call.principal() - val session = call.sessions.get() - 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("")) - } - } - } + // common: logout get("/logout") { call.sessions.clear() call.response.status(HttpStatusCode.OK)