제한적 로그인을 통해 개발자는 사용자 추적 시 로그인이 제한된다는 점을 알릴 수 있습니다.
로그인 시도가 성공하면 클라이언트 서버에서 인증을 확인하는 데 사용할 수 있는 로그인 시도에 관한 정보를 제공하는 글로벌 AuthenticationToken
인스턴스가 작성됩니다. 또한 앱 범위 사용자 ID, 사용자 이름, 프로필 사진 등의 기본 정보를 포함한 공유된 프로필 인스턴스가 작성됩니다.
요청할 수 있는 사용 가능한 권한은 다음과 같습니다.
public_profile
email
gaming_profile
gaming_user_picture
user_age_range
user_birthday
user_friends
user_gender
user_hometown
user_link
user_location
user_messenger_contact
제한적 로그인을 통해 개발자는 서버에서 인증 시도를 확인하는 데 사용할 임시 값을 전달할 수 있습니다. 임시 값을 사용한 토큰 검증에 대한 자세한 내용은 제한적 로그인 OIDC 토큰 검증을 참조하세요.
사용자가 이미 iOS용 Facebook 앱에 로그인한 경우 해당 사용자에게 로그인 대화 상자를 표시하는 앱 스위치는 제한적 로그인 플로에서 지원되지 않습니다.
iOS용 Facebook SDK는 새 FBSDKLoginTracking
열거를 제공합니다. 사용 가능한 값은 enabled
와 limited
입니다. 제한적 로그인에는 limited
를 사용합니다.
enum LoginTracking {
case enabled
case limited
}
또한 제한적 로그인은 FBSDKLoginConfiguration
을 사용하여 로그인 시도의 기본 동작을 수정합니다. 이 구성은 기본 속성, 명시적 속성(Swift 전용) 또는 여러 가지 이니셜라이저 중 하나를 사용하여 생성할 수 있습니다.
init?(
permissions: Set
속성 | 설명 |
---|---|
| 로그인 시도에 요청된 권한입니다. 기본값은 빈 세트입니다. |
| 로그인 시도에 요청된 권한입니다. 기본값은 빈 세트입니다. |
| 로그인 추적 기본 설정입니다. 기본값은 |
| 구성 생성 시 제공하는 임시 값입니다. 팩터리 메서드에 아무 값도 제공되지 않으면 고유 임시 값을 사용합니다. |
다음과 같은 조건을 충족하지 못하면 구성 생성 시도가 실패합니다.
임시 값은 공백이 없고 비어 있지 않은 문자열이어야 합니다.
추적 범위를 벗어나는 권한을 요청할 수 없습니다. 예를 들어 추적이 .limited
상태이면 user_likes
를 요청할 수 없습니다.
로그인 관리자 클래스를 직접 사용하여 앱에 제한적 로그인을 구현하려면 최신 iOS용 Facebook SDK로 업그레이드하고 다음 코드를 사용하세요.
let loginManager = LoginManager()
// Ensure the configuration object is valid
guard let configuration = LoginConfiguration(
permissions:["email", "user_friends", "user_birthday", "user_age_range", "user_gender", "user_location", "user_hometown", "user_link"],
tracking: .limited,
nonce: "123"
)
else {
return
}
loginManager.logIn(configuration: configuration) { result in
switch result {
case .cancelled, .failed:
// Handle error
break
case .success:
// getting user ID
let userID = Profile.current?.userID
// getting pre-populated email
let email = Profile.current?.email
// getting pre-populated friends list
let friendIDs = Profile.current?.friendIDs
// getting pre-populated user birthday
let birthday = Profile.current?.birthday
// getting pre-populated age range
let ageRange = Profile.current?.ageRange
// getting user gender
let gender = Profile.current?.gender
// getting user location
let location = Profile.current?.location
// getting user hometown
let hometown = Profile.current?.hometown
// getting user profile URL
let profileURL = Profile.current?.linkURL
// getting id token string
let tokenString = AuthenticationToken.current?.tokenString
}
}
로그인 버튼을 사용하여 앱에 제한적 로그인을 구현하려면 최신 iOS용 Facebook SDK로 업그레이드하고 다음 코드를 사용하세요.
override func viewDidLoad() {
super.viewDidLoad()
setupLoginButton()
}
func setupLoginButton() {
loginButton.delegate = self
loginButton.permissions = ["email"]
loginButton.loginTracking = .limited
loginButton.nonce = "123" as NSString
}
func loginButton(
_ loginButton: FBLoginButton,
didCompleteWith potentialResult: LoginManagerLoginResult?,
error potentialError: Error?
) {
if let error = potentialError {
// Handle Error
}
guard let result = potentialResult else {
// Handle missing result
}
guard !result.isCancelled else {
// Handle cancellation
}
// Handle successful login
let userID = Profile.current?.userID
let email = Profile.current?.email
let tokenString = AuthenticationToken.current?.tokenString
}