[swift] Alamofire와 토큰 기반 인증 구현하기

이번 블로그에서는 Swift로 Alamofire를 사용하여 토큰 기반 인증을 구현하는 방법을 알아보겠습니다. Alamofire는 iOS 개발에서 네트워크 요청을 손쉽게 처리할 수 있도록 도와주는 인기있는 라이브러리입니다. 토큰 기반 인증은 많은 웹 애플리케이션에서 사용되는 인증 방법 중 하나로, 사용자가 인증 정보를 입력하여 토큰을 발급받아 API 요청 시 해당 토큰을 함께 전송하여 인증하는 방식입니다.

Alamofire 설치

먼저, 프로젝트에 Alamofire를 설치해야 합니다. Cocoapods를 사용하여 Alamofire를 설치하는 방법은 다음과 같습니다.

  1. Terminal을 열고 프로젝트의 루트 디렉토리로 이동합니다.
  2. Podfile을 생성하고 다음 내용을 추가합니다.
platform :ios, '10.0'
use_frameworks!

target 'YourProjectName' do
  pod 'Alamofire', '~> 5.0'
end
  1. Terminal에서 pod install 명령어를 실행하여 Alamofire를 프로젝트에 설치합니다.

토큰 기반 인증 구현하기

모든 준비가 되었으면, 이제 토큰 기반 인증을 구현해보겠습니다. 먼저, 서버에서 토큰을 발급받는 로직을 구현해야 합니다. 일반적으로는 인증 API를 호출하여 유효한 사용자인지 확인한 후에 토큰을 발급받는 방식이 사용됩니다. 다음은 Alamofire를 사용하여 토큰을 발급받는 예제 코드입니다.

import Alamofire

func getToken(completion: @escaping (String?) -> Void) {
  let parameters: [String: Any] = [
    // 인증에 필요한 파라미터를 추가해주세요
  ]

  AF.request("https://your-auth-api.com/token", method: .post, parameters: parameters)
    .responseJSON { response in
      switch response.result {
      case .success(let value):
        guard let token = value["token"] as? String else {
          completion(nil)
          return
        }
        completion(token)
      case .failure:
        completion(nil)
      }
    }
}

위 코드에서는 Alamofire의 AF.request 메서드를 사용하여 POST 요청을 보냅니다. 서버로부터의 응답을 처리하기 위해 responseJSON 메서드를 사용하고, 응답이 성공적일 경우에는 토큰을 반환하고 실패할 경우에는 nil을 반환합니다.

이제 토큰을 발급받았으니, 이 토큰을 사용하여 인증된 API 요청을 보내는 방법을 알아보겠습니다. 다음은 Alamofire를 사용하여 토큰을 포함한 API 요청을 보내는 예제 코드입니다.

import Alamofire

let headers: HTTPHeaders = [
  "Authorization": "Bearer YOUR_TOKEN"
]

AF.request("https://your-api.com/data", headers: headers)
  .responseJSON { response in
    // API 응답 처리
  }

위 코드에서는 URLSessionURLRequest를 사용하는 대신 Alamofire의 AF.request 메서드로 API 요청을 보냈습니다. headers 인자에 Authorization 헤더에 토큰을 포함시켜 보내면, 서버에서는 이를 확인하여 인증된 요청인지 판단할 수 있습니다.

마무리

이제 Alamofire를 사용하여 토큰 기반 인증을 구현하는 방법을 알아보았습니다. Alamofire의 간편한 사용법과 토큰 기반 인증 방식을 이용하여 웹 애플리케이션의 보안을 강화할 수 있습니다. 더 많은 기능과 옵션을 사용하고 싶다면 Alamofire의 공식 문서를 참조하시기 바랍니다.

참조: Alamofire 공식 문서