Skip to content

Commit

Permalink
[Merge/#127] reissuance-refresh-token
Browse files Browse the repository at this point in the history
[Fix/#124] �JWT 토큰 재발급 로직 수정
  • Loading branch information
chattymin authored Jan 15, 2024
2 parents 1e9736d + c57d57c commit f000926
Show file tree
Hide file tree
Showing 19 changed files with 251 additions and 123 deletions.
15 changes: 0 additions & 15 deletions .idea/git_toolbox_prj.xml

This file was deleted.

6 changes: 6 additions & 0 deletions app/src/main/java/com/going/doorip/di/DataSourceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.going.data.datasource.ProfileDataSource
import com.going.data.datasource.SettingDataSource
import com.going.data.datasource.TendencyDataSource
import com.going.data.datasource.TodoDataSource
import com.going.data.datasource.TokenReissueDataSource
import com.going.data.datasourceImpl.AuthDataSourceImpl
import com.going.data.datasourceImpl.DashBoardDataSourceImpl
import com.going.data.datasourceImpl.EnterTripDataSourceImpl
Expand All @@ -16,6 +17,7 @@ import com.going.data.datasourceImpl.ProfileDataSourceImpl
import com.going.data.datasourceImpl.SettingDataSourceImpl
import com.going.data.datasourceImpl.TendencyDataSourceImpl
import com.going.data.datasourceImpl.TodoDataSourceImpl
import com.going.data.datasourceImpl.TokenReissueDataSourceImpl
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
Expand Down Expand Up @@ -66,4 +68,8 @@ object DataSourceModule {
fun provideEnterTripDataSource(enterTripDataSourceImpl: EnterTripDataSourceImpl): EnterTripDataSource =
enterTripDataSourceImpl

@Provides
@Singleton
fun provideTokenReissueDataSource(tokenReissueDataSourceImpl: TokenReissueDataSourceImpl): TokenReissueDataSource =
tokenReissueDataSourceImpl
}
6 changes: 6 additions & 0 deletions app/src/main/java/com/going/doorip/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.going.data.repositoryImpl.ProfileRepositoryImpl
import com.going.data.repositoryImpl.SettingRepositoryImpl
import com.going.data.repositoryImpl.TendencyRepositoryImpl
import com.going.data.repositoryImpl.TodoRepositoryImpl
import com.going.data.repositoryImpl.TokenReissueRepositoryImpl
import com.going.data.repositoryImpl.TokenRepositoryImpl
import com.going.domain.repository.AuthRepository
import com.going.domain.repository.DashBoardRepository
Expand All @@ -17,6 +18,7 @@ import com.going.domain.repository.ProfileRepository
import com.going.domain.repository.SettingRepository
import com.going.domain.repository.TendencyRepository
import com.going.domain.repository.TodoRepository
import com.going.domain.repository.TokenReissueRepository
import com.going.domain.repository.TokenRepository
import dagger.Module
import dagger.Provides
Expand Down Expand Up @@ -73,4 +75,8 @@ object RepositoryModule {
fun provideProfileRepository(profileRepositoryImpl: ProfileRepositoryImpl): ProfileRepository =
profileRepositoryImpl

@Provides
@Singleton
fun provideTokenReissueRepository(tokenReissueRepositoryImpl: TokenReissueRepositoryImpl): TokenReissueRepository =
tokenReissueRepositoryImpl
}
26 changes: 25 additions & 1 deletion app/src/main/java/com/going/doorip/di/RetrofitModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.going.doorip.di
import com.going.data.interceptor.AuthInterceptor
import com.going.doorip.BuildConfig.BASE_URL
import com.going.doorip.di.qualifier.JWT
import com.going.doorip.di.qualifier.REISSUE
import com.going.ui.extension.isJsonArray
import com.going.ui.extension.isJsonObject
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
Expand Down Expand Up @@ -63,6 +64,7 @@ object RetrofitModule {

@Provides
@Singleton
@JWT
fun provideJWTOkHttpClient(
loggingInterceptor: Interceptor,
@JWT authInterceptor: Interceptor,
Expand All @@ -73,8 +75,30 @@ object RetrofitModule {

@Provides
@Singleton
@REISSUE
fun provideReissueOkHttpClient(
loggingInterceptor: Interceptor,
): OkHttpClient = OkHttpClient.Builder()
.addInterceptor(loggingInterceptor)
.build()

@Provides
@Singleton
@JWT
fun provideJWTRetrofit(
client: OkHttpClient,
@JWT client: OkHttpClient,
factory: Converter.Factory,
): Retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client)
.addConverterFactory(factory)
.build()

@Provides
@Singleton
@REISSUE
fun provideReissueRetrofit(
@REISSUE client: OkHttpClient,
factory: Converter.Factory,
): Retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
Expand Down
23 changes: 15 additions & 8 deletions app/src/main/java/com/going/doorip/di/ServiceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ import com.going.data.service.ProfileService
import com.going.data.service.SettingService
import com.going.data.service.TendencyService
import com.going.data.service.TodoService
import com.going.data.service.TokenReissueService
import com.going.doorip.di.qualifier.JWT
import com.going.doorip.di.qualifier.REISSUE
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
Expand All @@ -21,42 +24,46 @@ object ServiceModule {

@Provides
@Singleton
fun provideMockService(retrofit: Retrofit): MockService =
fun provideMockService(@JWT retrofit: Retrofit): MockService =
retrofit.create(MockService::class.java)

@Provides
@Singleton
fun provideAuthService(retrofit: Retrofit): AuthService =
fun provideAuthService(@JWT retrofit: Retrofit): AuthService =
retrofit.create(AuthService::class.java)

@Provides
@Singleton
fun provideSettingService(retrofit: Retrofit): SettingService =
fun provideSettingService(@JWT retrofit: Retrofit): SettingService =
retrofit.create(SettingService::class.java)

@Provides
@Singleton
fun provideTodoService(retrofit: Retrofit): TodoService =
fun provideTodoService(@JWT retrofit: Retrofit): TodoService =
retrofit.create(TodoService::class.java)

@Provides
@Singleton
fun provideDashBoardService(retrofit: Retrofit): DashBoardService =
fun provideDashBoardService(@JWT retrofit: Retrofit): DashBoardService =
retrofit.create(DashBoardService::class.java)

@Provides
@Singleton
fun provideEnterTripService(retrofit: Retrofit): EnterTripService =
fun provideEnterTripService(@JWT retrofit: Retrofit): EnterTripService =
retrofit.create(EnterTripService::class.java)

@Provides
@Singleton
fun provideTendencyService(retrofit: Retrofit): TendencyService =
fun provideTendencyService(@JWT retrofit: Retrofit): TendencyService =
retrofit.create(TendencyService::class.java)

@Provides
@Singleton
fun provideProfileService(retrofit: Retrofit): ProfileService =
fun provideProfileService(@JWT retrofit: Retrofit): ProfileService =
retrofit.create(ProfileService::class.java)

@Provides
@Singleton
fun provideTokenReissueService(@REISSUE retrofit: Retrofit): TokenReissueService =
retrofit.create(TokenReissueService::class.java)
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@ import javax.inject.Qualifier
@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class JWT

@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class REISSUE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.going.data.datasource

import com.going.data.dto.BaseResponse
import com.going.data.dto.request.TokenReissueRequestDto
import com.going.data.dto.response.AuthResponseDto

interface TokenReissueDataSource {

suspend fun postReissueTokens(
authorization: String,
userId: TokenReissueRequestDto,
): BaseResponse<AuthResponseDto>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.going.data.datasourceImpl

import com.going.data.datasource.TokenReissueDataSource
import com.going.data.dto.BaseResponse
import com.going.data.dto.request.TokenReissueRequestDto
import com.going.data.dto.response.AuthResponseDto
import com.going.data.service.TokenReissueService
import javax.inject.Inject

data class TokenReissueDataSourceImpl @Inject constructor(
private val tokenReissueService: TokenReissueService,
) : TokenReissueDataSource {

override suspend fun postReissueTokens(
authorization: String,
userId: TokenReissueRequestDto,
): BaseResponse<AuthResponseDto> =
tokenReissueService.postReissueTokens(authorization, userId)
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.going.data.dto.request

import com.going.domain.entity.request.TokenReissueRequestModel
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class TokenReissueRequestDto(
@SerialName("userId")
val userId: Long,
)

fun TokenReissueRequestModel.toTokenReissueModel() = TokenReissueRequestDto(userId)
Loading

0 comments on commit f000926

Please sign in to comment.