[swift] 네이버 로그인 연동
네이버 로그인 연동
1. 대충 네이버 개발자 센터에가서 ios sdk를 받아준다
2. sdk 폴더안에있는 소스파일 전부 프로젝트로 붙인다.
3. 전부다 안붙이면 밑에 있는 에러난다.. .
저기 libNaverLogin 파일 프로젝트에 안붙였다가 링크에러 계속났었다.
4. 브릿지헤더만든다.
sdk 헤더파일들 임포트해주면된다.
5 나머지 info.list 설정같은거는 네이버 홈페이지에나와있는대로 해주면된다.
6. ios 9 부터는 querySchema 설정해줘된다 안하면 밑에처럼 에러가뜬다.
요기다 naversearchapp, naversearchthirdlogin 추가해주면 끝!
추가
카카오나 페북에비해서 sdk가 좀 지랄맞다
1. appdelegate에서 상수세팅 해준다.
2.appdelegate에서 url 콜백되었을때 처리 하는 부분 넣어준다.
3. 구현하고자하는 뷰에서 NaverThirdPartyLoginConnectionDelegate 선언해주고 저프로토콜 필요한 메서드 전부 구현해준다(사진에 oauth로시작하는 메서드 다 required 찾기 귀찮게 왜 저렇게해놧는지모르겠다.)
4. 로그인 액션할 부분에 loginconnection 개체 만들어준후 delegate 해준다 여기서 delegate 안걸면 네이버앱으로는 연결이되는데 네이버앱 없을시 인앱브라우저가 안뜬다.
5. 마지막으로 내경우에는 네비게이션컨트롤러가 루트뷰인데 인앱브라우저에서 닫기 버튼 눌렀을경우 웹뷰가 안꺼졌다. present하는 부분이 어떻게 구현되있는지는 모르겠지만 원래 sdk NLoginThirdPartyOAuth20InAppBrowserViewController.m에는 dissmissview로 되어있다. 이거 popviewcon으로바꿔준다 그럼꺼진다.
2017.12.11
로그인연동에관한 문의메일을 받았었습니다.
nts 정책에따른 white domain을 추가해주셔야 네이버앱이 설치되어있지않은경우 webview가 호출되게됩니다.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
<key>NSExceptionDomains</key>
<dic>
<key>naver.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
<key>naver.net</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
plist에서추가해주세요!