From 62310e1715f18b11752f85b4c0e22a5aecfb13ea Mon Sep 17 00:00:00 2001 From: whereami0404 Date: Tue, 7 May 2024 18:28:56 +0900 Subject: [PATCH 1/4] =?UTF-8?q?chore:=20jwt=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=EC=83=81=EC=88=98=20application.yml=EC=97=90=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api-Module/src/main/resources/application.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Api-Module/src/main/resources/application.yml b/Api-Module/src/main/resources/application.yml index eadcecda..42828de2 100644 --- a/Api-Module/src/main/resources/application.yml +++ b/Api-Module/src/main/resources/application.yml @@ -11,4 +11,10 @@ spring: open-in-view: false hibernate: ddl-auto: update - database-platform: org.hibernate.dialect.MySQLDialect \ No newline at end of file + database-platform: org.hibernate.dialect.MySQLDialect + +jwt: + secret: ${JWT_SECRET} + access-token-expiration-time: 3600000 # 60*60*1000 = 1시간 + refresh-token-expiration-time: 604800000 # 7*24*60*60*1000 = 7일 + registration-token-expiration-time: 1000 \ No newline at end of file From fd77cadd58fd8a266950809b68764730af179a86 Mon Sep 17 00:00:00 2001 From: whereami0404 Date: Tue, 7 May 2024 18:52:59 +0900 Subject: [PATCH 2/4] =?UTF-8?q?chore:=20blue-green=20=EB=B0=B0=ED=8F=AC=20?= =?UTF-8?q?=EB=B0=A9=EC=8B=9D=20=EB=B3=80=EA=B2=BD=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=A5=B8=20CD-dev=20=EC=9B=8C=ED=81=AC=20=ED=94=8C=EB=A1=9C?= =?UTF-8?q?=EC=9A=B0=20=ED=8C=8C=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/CD-dev.yml | 23 +++++-------------- .../service/command/AuthInvoker.kt | 23 ++++++++++--------- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/.github/workflows/CD-dev.yml b/.github/workflows/CD-dev.yml index 2ca36295..b79ba6c9 100644 --- a/.github/workflows/CD-dev.yml +++ b/.github/workflows/CD-dev.yml @@ -2,7 +2,7 @@ name: CD-dev on: push: - branches: [ "main" ] + branches: [ "feat/flight-17" ] permissions: contents: read @@ -44,7 +44,7 @@ jobs: echo "DB_URL=${{ secrets.DEV_DB_URL }}" >> ./.env echo "DB_USERNAME=${{ secrets.DEV_DB_USERNAME }}" >> ./.env echo "DB_PASSWORD=${{ secrets.DEV_DB_PASSWORD }}" >> ./.env -# echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> ./.env + echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> ./.env # echo "KAKAO_APP_ID=${{ secrets.KAKAO_APP_ID }}" >> ./.env # echo "APPLE_APP_ID=${{ secrets.APPLE_APP_ID }}" >> ./.env # echo "S3_BUCKET=${{ secrets.S3_BUCKET }}" >> ./.env @@ -65,17 +65,6 @@ jobs: docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }} . docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }} - ## deploy.sh 파일 서버로 전달 - - name: Send deploy.sh - uses: appleboy/scp-action@master - with: - username: ubuntu - host: ${{ secrets.HOST }} - key: ${{ secrets.KEY }} - port: 22 - source: "./scripts/" - target: "/home/ubuntu/" - - name: Send docker-compose.yml uses: appleboy/scp-action@master with: @@ -95,7 +84,7 @@ jobs: key: ${{ secrets.KEY }} script: | sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }} - chmod 777 ./scripts/deploy.sh - cp ./scripts/deploy.sh ./deploy.sh - ./deploy.sh - docker image prune -f + sudo docker stop ${{secrets.DOCKER_REPOSITORY}} + sudo docker rm ${{secrets.DOCKER_REPOSITORY}} + sudo docker run --name ${{secrets.DOCKER_REPOSITORY}} -d -p 8080:8080 ${{secrets.DOCKER_REPOSITORY}} + docker image prune -f \ No newline at end of file diff --git a/Api-Module/src/main/kotlin/com/bamyanggang/apimodule/domain/auth/application/service/command/AuthInvoker.kt b/Api-Module/src/main/kotlin/com/bamyanggang/apimodule/domain/auth/application/service/command/AuthInvoker.kt index afe989ac..69268631 100644 --- a/Api-Module/src/main/kotlin/com/bamyanggang/apimodule/domain/auth/application/service/command/AuthInvoker.kt +++ b/Api-Module/src/main/kotlin/com/bamyanggang/apimodule/domain/auth/application/service/command/AuthInvoker.kt @@ -13,21 +13,22 @@ import org.springframework.stereotype.Component class AuthInvoker ( private val authHandlerList: List, private val jwtProvider: JwtProvider, - private val userReader: UserReader +// private val userReader: UserReader ) { fun invoke(request: SocialLogin.Request, provider: SocialLoginProvider): SocialLogin.Response { val response = attemptLogin(request, provider) - return TransactionUtils.writable { - return@writable userReader.findBySocialIdOrNull(response.socialId)?.let { - val accessToken = jwtProvider.generateAccessToken(Claims.UserClaims(it.id)) - val refreshToken = jwtProvider.generateRefreshToken(Claims.UserClaims(it.id)) - SocialLogin.Response.Success(accessToken, refreshToken) - } ?: run { - val registrationToken = jwtProvider.generateRegistrationToken(Claims.RegistrationClaims(response.socialId, provider)) - SocialLogin.Response.UnRegistered(registrationToken, response.nickName) - } - } + return SocialLogin.Response.Success("accessToken", "refreshToken") +// return TransactionUtils.writable { +// return@writable userReader.findBySocialIdOrNull(response.socialId)?.let { +// val accessToken = jwtProvider.generateAccessToken(Claims.UserClaims(it.id)) +// val refreshToken = jwtProvider.generateRefreshToken(Claims.UserClaims(it.id)) +// SocialLogin.Response.Success(accessToken, refreshToken) +// } ?: run { +// val registrationToken = jwtProvider.generateRegistrationToken(Claims.RegistrationClaims(response.socialId, provider)) +// SocialLogin.Response.UnRegistered(registrationToken, response.nickName) +// } +// } } private fun attemptLogin(request: SocialLogin.Request, provider: SocialLoginProvider): AuthHandler.Response { From c9e1e16083d9c6e20e3aba16c04bafdebfe5f85a Mon Sep 17 00:00:00 2001 From: whereami2048 Date: Tue, 7 May 2024 19:00:01 +0900 Subject: [PATCH 3/4] =?UTF-8?q?chore:=20=EC=9B=8C=ED=81=AC=20=ED=94=8C?= =?UTF-8?q?=EB=A1=9C=EC=9A=B0=20=ED=8C=8C=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/CD-dev.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/CD-dev.yml b/.github/workflows/CD-dev.yml index b79ba6c9..d088ca03 100644 --- a/.github/workflows/CD-dev.yml +++ b/.github/workflows/CD-dev.yml @@ -86,5 +86,4 @@ jobs: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }} sudo docker stop ${{secrets.DOCKER_REPOSITORY}} sudo docker rm ${{secrets.DOCKER_REPOSITORY}} - sudo docker run --name ${{secrets.DOCKER_REPOSITORY}} -d -p 8080:8080 ${{secrets.DOCKER_REPOSITORY}} - docker image prune -f \ No newline at end of file + sudo docker run --name ${{secrets.DOCKER_REPOSITORY}} -d -p 8080:8080 ${{secrets.DOCKER_USERNAME}}/${{secrets.DOCKER_REPOSITORY}} \ No newline at end of file From 731ae6f26111cbad5f7292b170c6ffa8873f82db Mon Sep 17 00:00:00 2001 From: whereami2048 Date: Tue, 7 May 2024 19:04:58 +0900 Subject: [PATCH 4/4] =?UTF-8?q?chore:=20CD-dev=20=EC=9B=8C=ED=81=AC=20?= =?UTF-8?q?=ED=94=8C=EB=A1=9C=EC=9A=B0=20=ED=8A=B8=EB=A6=AC=EA=B1=B0=20?= =?UTF-8?q?=EB=B8=8C=EB=9E=9C=EC=B9=98=20=EB=B3=80=EA=B2=BD=20&=20AuthInvo?= =?UTF-8?q?ker=20=ED=8C=8C=EC=9D=BC=20=EC=A3=BC=EC=84=9D=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=ED=95=B4=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/CD-dev.yml | 2 +- .../service/command/AuthInvoker.kt | 23 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.github/workflows/CD-dev.yml b/.github/workflows/CD-dev.yml index d088ca03..05dc2e46 100644 --- a/.github/workflows/CD-dev.yml +++ b/.github/workflows/CD-dev.yml @@ -2,7 +2,7 @@ name: CD-dev on: push: - branches: [ "feat/flight-17" ] + branches: [ "main" ] permissions: contents: read diff --git a/Api-Module/src/main/kotlin/com/bamyanggang/apimodule/domain/auth/application/service/command/AuthInvoker.kt b/Api-Module/src/main/kotlin/com/bamyanggang/apimodule/domain/auth/application/service/command/AuthInvoker.kt index 69268631..afe989ac 100644 --- a/Api-Module/src/main/kotlin/com/bamyanggang/apimodule/domain/auth/application/service/command/AuthInvoker.kt +++ b/Api-Module/src/main/kotlin/com/bamyanggang/apimodule/domain/auth/application/service/command/AuthInvoker.kt @@ -13,22 +13,21 @@ import org.springframework.stereotype.Component class AuthInvoker ( private val authHandlerList: List, private val jwtProvider: JwtProvider, -// private val userReader: UserReader + private val userReader: UserReader ) { fun invoke(request: SocialLogin.Request, provider: SocialLoginProvider): SocialLogin.Response { val response = attemptLogin(request, provider) - return SocialLogin.Response.Success("accessToken", "refreshToken") -// return TransactionUtils.writable { -// return@writable userReader.findBySocialIdOrNull(response.socialId)?.let { -// val accessToken = jwtProvider.generateAccessToken(Claims.UserClaims(it.id)) -// val refreshToken = jwtProvider.generateRefreshToken(Claims.UserClaims(it.id)) -// SocialLogin.Response.Success(accessToken, refreshToken) -// } ?: run { -// val registrationToken = jwtProvider.generateRegistrationToken(Claims.RegistrationClaims(response.socialId, provider)) -// SocialLogin.Response.UnRegistered(registrationToken, response.nickName) -// } -// } + return TransactionUtils.writable { + return@writable userReader.findBySocialIdOrNull(response.socialId)?.let { + val accessToken = jwtProvider.generateAccessToken(Claims.UserClaims(it.id)) + val refreshToken = jwtProvider.generateRefreshToken(Claims.UserClaims(it.id)) + SocialLogin.Response.Success(accessToken, refreshToken) + } ?: run { + val registrationToken = jwtProvider.generateRegistrationToken(Claims.RegistrationClaims(response.socialId, provider)) + SocialLogin.Response.UnRegistered(registrationToken, response.nickName) + } + } } private fun attemptLogin(request: SocialLogin.Request, provider: SocialLoginProvider): AuthHandler.Response {