[swift] Swift에서 키체인을 사용하여 로그인 세션 토큰 관리하기

로그인 기능을 구현할 때, 사용자의 세션을 유지하기 위해 토큰을 사용하는 것은 일반적입니다. 이 토큰은 일반적으로 서버에서 발급되며, 클라이언트 앱에서는 이 토큰을 사용하여 인증 및 권한 부여를 처리합니다.

이 글에서는 Swift에서 Keychain을 사용하여 토큰을 안전하게 저장하고 관리하는 방법에 대해 알아보겠습니다.

Keychain 사용하기

Keychain은 암호화된 데이터를 안전하게 보관하기 위한 iOS의 기능입니다. 아래의 단계를 따라 Keychain을 사용하여 로그인 토큰을 관리할 수 있습니다.

  1. KeychainWrapper 라이브러리 설치하기

    Keychain을 손쉽게 사용할 수 있는 KeychainWrapper 라이브러리를 사용합니다. CocoaPods를 통해 라이브러리를 설치합니다. Podfile에 아래와 같이 추가한 후, pod install 명령어를 실행합니다.

    pod 'SwiftKeychainWrapper'
    
  2. KeychainWrapper 사용하기

    먼저, KeychainWrapper를 import합니다.

    import SwiftKeychainWrapper
    

    그런 다음, 토큰을 저장하는 함수와 토큰을 가져오는 함수를 작성합니다.

    func saveToken(token: String) {
        let saveSuccessful: Bool = KeychainWrapper.standard.set(token, forKey: "LoginToken")
        if saveSuccessful {
            print("Token saved successfully")
        }
    }
    
    func getToken() -> String? {
        return KeychainWrapper.standard.string(forKey: "LoginToken")
    }
    

    saveToken 함수를 통해 토큰을 Keychain에 저장하고, getToken 함수를 통해 Keychain에서 토큰을 가져올 수 있습니다.

  3. 토큰 저장 및 사용 예시

    로그인 성공 시 토큰을 저장하는 예시 코드입니다.

    let loginToken = "example_token"
    saveToken(token: loginToken)
    

    토큰을 사용하여 로그인 상태를 확인하는 예시 코드입니다.

    if let savedToken = getToken() {
        // 토큰이 저장되어 있음
        // 로그인 상태 유지
    } else {
        // 토큰이 저장되어 있지 않음
        // 로그인 필요
    }
    

마무리

이렇게 Swift에서 Keychain을 사용하여 로그인 세션 토큰을 안전하게 관리할 수 있습니다. Keychain은 데이터를 암호화하여 저장하기 때문에 보안에 좋은 선택입니다. KeychainWrapper 라이브러리를 사용하여 편리하게 Keychain을 활용할 수 있습니다.

더 많은 기능과 사용 방법은 KeychainWrapper GitHub 페이지를 참고해주세요.