mirror of
https://github.com/dalbodeule/chibot-chzzk-bot.git
synced 2025-06-09 07:18:22 +00:00
debug discord login (3x)
This commit is contained in:
parent
b38080111c
commit
dc7e05781f
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user