ChamomileGuides 3.0.4 Help

네이버 로그인(IOS)

플랫폼 등록

  1. 네이버 플랫폼

Xcode 설정

  1. SDK 설치

    • Podfile 내 'naveridlogin-sdk-ios' 입력

      2226-images.png

    • pod install 실행

      2226-images.png

  2. info.plist 작성

    • LSApplicationQueriesSchemes에서 두개 하위 리스트 생성 후 입력

      2226-images.png

  3. URL Scheme 등록

    • identifier, URL Schemes 작성

      2226-images.png

  4. 코드

    • AppDelegate import NaverThirdpartyLogin

      2226-images.png

    • SceneDelegate import NaverThirdpartyLogin

      2226-images.png

  5. SecretKey 작성

    • Pods 내 naverThirdPartyConstantsForApp.h 파일로 이동

      2226-images.png

    • 마우스 오른쪽 클릭 후 폴더 열기 -> NaverThirdPartyConstantsForApp.h 더블 클릭-> define 되어 있는 정보를 변경

      2226-images.png
      2226-images.png

  6. 테스트 코드

    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