diff --git a/common/src/main/kotlin/space/mori/chzzk_bot/common/models/User.kt b/common/src/main/kotlin/space/mori/chzzk_bot/common/models/User.kt index ef6320c..b7f203e 100644 --- a/common/src/main/kotlin/space/mori/chzzk_bot/common/models/User.kt +++ b/common/src/main/kotlin/space/mori/chzzk_bot/common/models/User.kt @@ -15,6 +15,8 @@ object Users: IntIdTable("users") { val liveAlertMessage = text("live_alert_message").nullable() val isDisableStartupMsg = bool("is_disable_startup_msg").default(false) val isDisabled = bool("is_disabled").default(false) + val accessToken = varchar("access_token", 255).nullable() + val refreshToken = varchar("refresh_token", 255).nullable() } class User(id: EntityID) : IntEntity(id) { @@ -29,6 +31,9 @@ class User(id: EntityID) : IntEntity(id) { var isDisableStartupMsg by Users.isDisableStartupMsg var isDisabled by Users.isDisabled + var accessToken by Users.accessToken + var refreshToken by Users.refreshToken + // 유저가 가진 매니저들 var managers by User.via(UserManagers.user, UserManagers.manager) diff --git a/common/src/main/kotlin/space/mori/chzzk_bot/common/services/UserService.kt b/common/src/main/kotlin/space/mori/chzzk_bot/common/services/UserService.kt index f3e3ddb..2836246 100644 --- a/common/src/main/kotlin/space/mori/chzzk_bot/common/services/UserService.kt +++ b/common/src/main/kotlin/space/mori/chzzk_bot/common/services/UserService.kt @@ -97,4 +97,19 @@ object UserService { user } } + + fun setAccessToken(user: User, accessToken: String): User { + return transaction { + user.accessToken = accessToken + user + } + } + + fun setRefreshToken(user: User, accessToken: String, refreshToken: String): User { + return transaction { + user.accessToken = accessToken + user.refreshToken = refreshToken + user + } + } } \ No newline at end of file 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 dda006b..e8f256f 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 @@ -191,6 +191,7 @@ val server = embeddedServer(Netty, port = 8080, ) { val userInfo = getChzzkUser(tokenResponse.content.accessToken) if(userInfo.content != null) { + val user = UserService.getUser(userInfo.content.channelId) call.sessions.set( UserSession( session.state, @@ -198,6 +199,7 @@ val server = embeddedServer(Netty, port = 8080, ) { listOf() ) ) + user?.let { UserService.setRefreshToken(it, tokenResponse.content.accessToken, tokenResponse.content.refreshToken ?: "") } call.respondRedirect(getFrontendURL("")) } } catch (e: Exception) {