네이버 로그인(IOS)
플랫폼 등록
네이버 플랫폼
오픈 API 신청
애플리케이션 등록
Xcode 설정
SDK 설치
Podfile 내 'naveridlogin-sdk-ios' 입력
pod install 실행
info.plist 작성
LSApplicationQueriesSchemes에서 두개 하위 리스트 생성 후 입력
URL Scheme 등록
identifier, URL Schemes 작성
코드
AppDelegate
import NaverThirdpartyLogin
SceneDelegate
import NaverThirdpartyLogin
SecretKey 작성
Pods 내 naverThirdPartyConstantsForApp.h 파일로 이동
마우스 오른쪽 클릭 후 폴더 열기 -> NaverThirdPartyConstantsForApp.h 더블 클릭-> define 되어 있는 정보를 변경
테스트 코드
extension LoginView: NaverThirdPartyLoginConnectionDelegate { func oauth20ConnectionDidFinishRequestACTokenWithRefreshToken() { print("토큰 요청 완료") } func oauth20ConnectionDidFinishDeleteToken() { print("네이버 로그인 토큰이 삭제되었습니다.") } func oauth20Connection(_ oauthConnection: NaverThirdPartyLoginConnection!, didFailWithError error: Error!) { print("error: ",error) } func oauth20ConnectionDidFinishRequestACTokenWithAuthCode() { guard let loginInstance = NaverThirdPartyLoginConnection.getSharedInstance() else { return } self.getNaverUserInfo(loginInstance.tokenType, loginInstance.accessToken) } func startNaverLogin() { guard let loginInstance = NaverThirdPartyLoginConnection.getSharedInstance() else { return } //이미 로그인되어있는 경우 if loginInstance.isValidAccessTokenExpireTimeNow() { self.getNaverUserInfo(loginInstance.tokenType, loginInstance.accessToken) return } loginInstance.delegate = self loginInstance.requestThirdPartyLogin() } func getNaverUserInfo( _ tokenType : String?, _ accessToken : String?) { guard let tokenType = tokenType else { return } guard let accessToken = accessToken else { return } let urlStr = "https://openapi.naver.com/v1/nid/me" let url = URL(string: urlStr)! let authorization = "\(tokenType) \(accessToken)" let req = AF.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: ["Authorization": authorization]) req.responseJSON { [weak self] response in let decoder = JSONDecoder() print("response: ",response) } } } }
Last modified: 21 4월 2025