일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 부르트포스
- Stack
- BFS
- 플로이드와샬
- 실버쥐
- ReLU
- C++
- 알고리즘
- ios
- 탐색
- 그래프
- NeuralNetwork
- DeepLearning
- 캡스톤정리
- 문제풀이
- Node.js
- Blockchain
- dp
- 그리디
- 풀이
- mysql
- Swift
- 백트래킹
- Greedy
- 백준
- 프로그래머스
- Docker
- sigmoid
- Algorithm
- dfs
- Today
- Total
개발아 담하자
[iOS/Swift] Apple Login 구현하기 본문
날 오지게 괴롭혔던 애플 로그인에 대해 알아봅시다~!
먼저 아래 페이지에서 발급받은 개발자 계정으로 로그인을 합니다.
developer.apple.com/account/#/welcome
Identifier 발급받기
위의 Apple Developer Account 에서 Certificates, Identifiers & Profiles 에 들어갑니다.
왼 쪽 메뉴에서 Identifiers 를 누릅니다.
Identifier 추가를 위해 옆에 파란 플러스 버튼을 누릅니다.
APP ID 누르고 Continue~~
App 누르고 Continue~
Description 과 프로젝트의 Bundle ID를 입력합니다.
그리고 스크롤 내려서 Sign In With Apple 도 체크하고 Register 버튼을 누르면 Identifier 가 생성됩니다.
Register Key
이제 Key를 발급받을 차례입니다. 마찬가지로 옆에 플러스 버튼을 누릅니다.
key name 을 입력하고 Sign in with Apple 체크 후 옆에 Configure 버튼을 누릅니다.
여기에서 아까 생성한 AppID 를 누르고 Register 누르면 끝~
Sign in With Apple
플젝으로 들어가서 아까 작성한 Bundl Identifier 작성합니다.
그리고 위에 Capability 플러스 버튼을 누릅니다.
sign in with apple 을 검색하고 추가합니다. 그러면
짠~ 밑에 뭔가 추가 ㅎㅎ
이제 구현을 시작해봅시다.
@objc func clickAppleLogin(_ sender: UITapGestureRecognizer) {
}
이 메소드는 애플 로그인 버튼을 눌렀을 때 동작하는 코드입니다. 여기 안을 채우겠습니다
let request = ASAuthorizationAppleIDProvider().createRequest()
request.requestedScopes = [.fullName, .email]
let controller = ASAuthorizationController(authorizationRequests: [request])
controller.delegate = self as? ASAuthorizationControllerDelegate
controller.presentationContextProvider = self as? ASAuthorizationControllerPresentationContextProviding
controller.performRequests()
먼저 request 를 생성하고 request를 보내줄 controller 를 생성합니다.
그리고 performRequests() 로 요청을 보냅니다.
이제 결과를 받아오도록 Controller Delegate 를 만듭니다.
extension LoginVC: ASAuthorizationControllerDelegate {
// 성공 후 동작
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
if let credential = authorization.credential as? ASAuthorizationAppleIDCredential {
let idToken = credential.identityToken!
let tokeStr = String(data: idToken, encoding: .utf8)
print(tokeStr)
guard let code = credential.authorizationCode else { return }
let codeStr = String(data: code, encoding: .utf8)
print(codeStr)
let user = credential.user
print(user)
}
}
// 실패 후 동작
func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
print("error")
}
}
didCompleteWithAuthorization 은 성공 후 동작을, didCompleteWithError 는 실패 시 구현되는 동작입니다.
developer.apple.com/documentation/authenticationservices/asauthorizationappleidcredential
위 공식문서를 보면 ASAuthorizationAppleIdCredential 에 대한 내용이 꼼꼼하게 나와있습니다.
이제 실행해봅시다~
성공! (로그인만) 성공!
이제 서버랑 연결해야지 ..^^ ㅠㅠ 신난다~
'📱 iOS' 카테고리의 다른 글
[Swift] Property Observer 의 didSet, willSet 사용하기 (0) | 2020.09.25 |
---|---|
[iOS/Swift] NotificationCenter 사용하기 (0) | 2020.09.18 |
[iOS/Swift] 카카오톡 소셜 로그인 구현하기 (0) | 2020.09.04 |
[iOS/Swift] tableView를 사용해 Infinite scroll 만들기 (0) | 2020.08.22 |
[iOS/RxSwift] RxSwift 시작하기 (Observable, Subject, Operator) (0) | 2020.08.08 |