[swift] Swift로 OAuth 요청 보내기

OAuth는 웹 서비스에서 사용자 인증을 처리하기 위한 공개 표준입니다. Swift 언어로 OAuth 요청을 보내고 응답을 처리하는 방법을 알아보겠습니다.

1. Alamofire 설치하기

OAuth 요청을 보내기 위해서는 먼저 Alamofire라는 네트워킹 라이브러리를 설치해야 합니다. CocoaPods를 사용하여 설치할 수 있습니다.

pod 'Alamofire'

Podfile에 위의 코드를 추가한 뒤 터미널에서 pod install 명령어를 실행하여 Alamofire를 설치합니다.

2. OAuth 요청 보내기

OAuth 2.0의 경우, 인증 과정을 통해 엑세스 토큰을 발급받아야 합니다. 다음은 OAuth 2.0 인증서버에 인증 코드를 전송하여 토큰을 발급받는 예시 코드입니다.

import Alamofire

func requestAccessToken() {
    let parameters = [
        "client_id": "your_client_id",
        "redirect_uri": "your_redirect_uri",
        "response_type": "code",
        "scope": "your_scope"
    ]

    Alamofire.request("https://oauth2.example.com/auth", method: .get, parameters: parameters)
        .validate(statusCode: 200..<300)
        .responseJSON { response in
            switch response.result {
            case .success(let value):
                print("인증 성공: \(value)")
            case .failure(let error):
                print("인증 실패: \(error)")
            }
        }
}

위의 코드에서 requestAccessToken 함수는 Alamofire를 사용하여 OAuth 인증 서버에 요청을 보냅니다. 필요한 파라미터를 설정한 후 Alamofire.request 메서드를 사용하여 GET 요청을 보냅니다.

응답은 responseJSON을 통해 처리되며, 성공 여부에 따라 적절한 처리를 수행할 수 있습니다.

3. 인증 토큰 사용하기

인증 토큰을 얻었다면 API 요청에 사용할 수 있습니다. 다음은 OAuth 인증 토큰을 이용하여 API 요청을 보내고 응답을 처리하는 예시 코드입니다.

import Alamofire

func sendApiRequest(accessToken: String) {
    let headers: [String: String] = [
        "Authorization": "Bearer \(accessToken)"
    ]

    Alamofire.request("https://api.example.com/resource", method: .get, headers: headers)
        .validate(statusCode: 200..<300)
        .responseJSON { response in
            switch response.result {
            case .success(let value):
                print("API 요청 성공: \(value)")
            case .failure(let error):
                print("API 요청 실패: \(error)")
            }
        }
}

위의 코드에서 sendApiRequest 함수는 OAuth 인증 토큰을 이용하여 API 요청을 보냅니다. Authorization 헤더에 토큰을 설정하고, Alamofire.request 메서드를 사용하여 GET 요청을 보냅니다.

응답 처리는 이전과 마찬가지로 responseJSON을 통해 처리됩니다.

참고 자료