기존의 Sluv 애플리케이션의 문제점을 보완하기 위해 webView로 처리했던 로그인 부분을 native 코드로 변환하면서 적은 글입니다. SwiftUI를 처음 접해보는 입장에서 애플로그인을 진행하다보니 막히는 부분도 많았고 어떻게 진행하는지 어려움이 많아 정리하게 됐습니다.
처음 애플로그인 버튼도 뜨고 버튼을 누른 후 동작도 잘 됐습니다.
하지만, AppleId 와 비밀번호를 올바르게 입력했음에도 불구하고 입력창이 그대로 남아있고, 터미널에도 아무것도 뜨지 않는 문제가 발생했습니다. 비밀번호를 잘못 입력했을때는 입력창이 흔들리면서 비밀번호가 틀렸다는 표시가 났지만, 올바른 입력을 한 후에는 애플로그인 함수 내에서 에러를 출력하는 print문 조차 실행되지 않았고 아무런 동작도 하지 않아 무슨 문제인지 한참을 찾아봤습니다.
애플로그인을 진행하기 위해서는 Apple Developer Program에 가입해야한다.
였습니다......ㅎ😅
Apple Developer Program에 가입되어있는 계정으로 바꾸니 바로 성공....
다른 분들도 이와 같은 어이없는 실수 하시지 말라고 글 적어봅니다!
아래부터는 로그인을 구현한 방식을 처음부터 끝까지 정리하겠습니다.
Project Navigator -> 프로젝트 Target -> Signing & Capabilities 탭 클릭
Sign in with Appple 검색 및 클릭
로그인 후 인증서, 식별자 및 프로파일 탭에서 식별자 클릭
Identifiers에서 해당 프로젝트 클릭
하단 capabitilies에서 Sign In with Apple 추가
이러면 환경 설정은 끝!
import AuthenticationServices
struct ContentView: View {
var body: some View {
VStack {
AppleSigninButton()
}
.frame(height:UIScreen.main.bounds.height)
.background(Color.white)
}
}
struct AppleSigninButton : View{
var body: some View{
SignInWithAppleButton(
onRequest: { request in
request.requestedScopes = [.fullName, .email]
},
onCompletion: { result in
switch result {
case .success(let authResults):
print("Apple Login Successful")
switch authResults.credential{
case let appleIDCredential as ASAuthorizationAppleIDCredential:
// 계정 정보 가져오기
let UserIdentifier = appleIDCredential.user
let fullName = appleIDCredential.fullName
let name = (fullName?.familyName ?? "") + (fullName?.givenName ?? "")
let email = appleIDCredential.email
let IdentityToken = String(data: appleIDCredential.identityToken!, encoding: .utf8)
let AuthorizationCode = String(data: appleIDCredential.authorizationCode!, encoding: .utf8)
default:
break
}
case .failure(let error):
print(error.localizedDescription)
print("error")
}
}
)
.frame(width : UIScreen.main.bounds.width * 0.9, height:50)
.cornerRadius(5)
}
}
[SwiftUI] 카카오 로그인(Kakao Social Login) (0) | 2023.04.29 |
---|
댓글 영역