Skip to content

Commit

Permalink
Merge pull request #67 from School-of-Company/66-SignIn-NoneTokenExpi…
Browse files Browse the repository at this point in the history
…rationperiod

🔀 :: [#66] 로그인 토큰 만료기간 저장안됨
  • Loading branch information
Xixn2 authored Nov 15, 2024
2 parents 992c6a8 + dcf586d commit 1853b90
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ struct SigninView: View {

}
.navigationDestination(isPresented: $isActiveSignin) {
SignupView(viewModel: AuthViewModel())
TabBarView()
}
.padding(.top, 152)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,64 +93,38 @@ public final class AuthViewModel: ObservableObject {
case 200:
let signInResponse = try result.map(SigninResponse.self)

// 만료 시간을 현재로부터의 시간 대신 `Date(timeIntervalSince1970:)`으로 변환
if let accessTokenExpiresIn = Double(signInResponse.accessTokenExpiresIn),
let refreshTokenExpiresIn = Double(signInResponse.refreshTokenExpiresIn) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)

let accessTokenExpirationDate = Date(timeIntervalSince1970: accessTokenExpiresIn)
let refreshTokenExpirationDate = Date(timeIntervalSince1970: refreshTokenExpiresIn)
if let accessTokenExpirationDate = dateFormatter.date(from: signInResponse.accessTokenExpiresIn),
let refreshTokenExpirationDate = dateFormatter.date(from: signInResponse.refreshTokenExpiresIn) {

let accessTokenExpirationInterval = accessTokenExpirationDate.timeIntervalSinceNow
let refreshTokenExpirationInterval = refreshTokenExpirationDate.timeIntervalSinceNow

KeyChain.shared.saveTokenWithExpiration(
key: Const.KeyChainKey.accessToken,
token: signInResponse.accessToken,
expiresIn: accessTokenExpirationDate.timeIntervalSinceNow
expiresIn: accessTokenExpirationInterval
)

KeyChain.shared.saveTokenWithExpiration(
key: Const.KeyChainKey.refreshToken,
token: signInResponse.refreshToken,
expiresIn: refreshTokenExpirationDate.timeIntervalSinceNow
expiresIn: refreshTokenExpirationInterval
)

// 만료 시간 확인을 위한 출력
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone.current

print("Access Token 만료 날짜: \(dateFormatter.string(from: accessTokenExpirationDate))")
print("Refresh Token 만료 날짜: \(dateFormatter.string(from: refreshTokenExpirationDate))")
print("Access Token 만료 날짜: \(accessTokenExpirationDate)")
print("Refresh Token 만료 날짜: \(refreshTokenExpirationDate)")
} else {
print("만료 시간 변환 오류: accessTokenExpiresIn 또는 refreshTokenExpiresIn이 Double로 변환되지 않음.")
print("만료 시간 변환 오류: 유효한 날짜 형식이 아님.")
}

DispatchQueue.main.async {
completion(statusCode, signInResponse.accessToken, signInResponse.refreshToken)
}

case 400:
print("400ㅣ비밀번호가 일치하지 않습니다.")
DispatchQueue.main.async {
completion(statusCode, nil, nil)
}

case 403:
print("403ㅣ아직 보류중입니다.")
DispatchQueue.main.async {
completion(statusCode, nil, nil)
}

case 404:
print("404ㅣ계정을 찾지 못했습니다.")
DispatchQueue.main.async {
completion(statusCode, nil, nil)
}

case 500..<600:
print("\(statusCode)ㅣ서버오류입니다.")
DispatchQueue.main.async {
completion(statusCode, nil, nil)
}

default:
print("Unhandled status code: \(statusCode)")
DispatchQueue.main.async {
Expand All @@ -173,8 +147,6 @@ public final class AuthViewModel: ObservableObject {
}
}



// MARK: - Sign Up
func signUp(completion: @escaping (Bool) -> Void) {
let params = SignupRequest(name: name, nickname: nickname, email: email, password: password, phoneNumber: phoneNumber)
Expand Down

0 comments on commit 1853b90

Please sign in to comment.