[swift] Swift KeychainAccess를 사용하여 액세스 토큰 갱신을 관리하는 방법

Access 토큰은 보안상 중요한 정보이므로 사용자가 로그인 상태를 유지하는 동안 안전하게 보관되어야 합니다. Swift KeychainAccess는 iOS 애플리케이션에서 키체인을 사용하여 중요한 데이터를 저장하고 관리하는 데 사용할 수 있는 라이브러리입니다. 이 라이브러리를 사용하면 액세스 토큰을 안전하게 저장하고 갱신하는 기능을 구현할 수 있습니다.

1. Swift KeychainAccess 설치

먼저 Swift Package Manager(SPM)를 사용하여 Swift KeychainAccess를 프로젝트에 추가해야 합니다. 다음 단계를 따라 진행해주세요.

  1. Xcode에서 프로젝트를 엽니다.
  2. 좌측 탐색기에서 프로젝트를 선택한 후, “Swift Packages” 탭을 클릭합니다.
  3. ”+” 버튼을 클릭하여 패키지를 추가합니다.
  4. 패키지 URL에 https://github.com/kishikawakatsumi/KeychainAccess.git을 입력한 후, “Next”를 클릭합니다.
  5. 변경사항 요약 화면에서 “Finish”를 클릭하여 패키지를 추가합니다.
  6. 패키지가 성공적으로 추가되면, Xcode에서 자동으로 라이브러리를 가져올 것입니다.

2. 액세스 토큰 저장 및 갱신

Swift KeychainAccess를 사용하여 액세스 토큰을 저장하고 갱신하는 방법을 알아보겠습니다.

import KeychainAccess

class AccessTokenManager {
    let keychain = Keychain(service: "com.example.app")

    func saveAccessToken(_ token: String) {
        do {
            try keychain.set(token, key: "accessToken")
        } catch {
            print("Failed to save access token: \(error.localizedDescription)")
        }
    }
    
    func getAccessToken() -> String? {
        do {
            return try keychain.get("accessToken")
        } catch {
            print("Failed to get access token: \(error.localizedDescription)")
            return nil
        }
    }
    
    func deleteAccessToken() {
        do {
            try keychain.remove("accessToken")
        } catch {
            print("Failed to delete access token: \(error.localizedDescription)")
        }
    }
}

위 코드 예제에서는 AccessTokenManager 클래스를 사용하여 액세스 토큰을 관리합니다. saveAccessToken 함수는 액세스 토큰을 저장하는 데 사용되고, getAccessToken 함수는 저장된 액세스 토큰을 반환합니다. deleteAccessToken 함수는 저장된 액세스 토큰을 삭제합니다.

3. 액세스 토큰 관리

실제로 액세스 토큰을 관리하는 방법은 앱의 로그인 및 로그아웃 프로세스에 따라 다릅니다. 일반적으로 로그인이 성공하면 새로운 액세스 토큰을 저장하고, 로그아웃 시에는 저장된 액세스 토큰을 삭제하는 방식을 구현할 수 있습니다.

let accessTokenManager = AccessTokenManager()

// 로그인 성공 시
let newAccessToken = "새로운 액세스 토큰"
accessTokenManager.saveAccessToken(newAccessToken)

// 로그아웃 시
accessTokenManager.deleteAccessToken()

액세스 토큰을 관리하는 데 있어서 KeychainAccess는 안전하고 편리한 옵션입니다. 앱의 보안을 강화하고 액세스 토큰을 안전하게 저장하려면 Swift KeychainAccess를 사용해보세요.

참고 자료