Với phương thức Giới hạn đăng nhập, các nhà phát triển có thể cho biết rằng hoạt động đăng nhập bị giới hạn ở khía cạnh theo dõi người dùng.
Sau mỗi lần đăng nhập thành công, hệ thống sẽ điền phiên bản AuthenticationToken
chung để cung cấp thông tin về lần đăng nhập có thể dùng để xác minh quy trình xác thực trên máy chủ của khách hàng. Ngoài ra, chúng tôi sẽ điền phiên bản Trang cá nhân được chia sẻ. Phiên bản này sẽ chứa các thông tin cơ bản như ID người dùng trong ứng dụng, tên và ảnh đại diện của người dùng.
Bạn có thể yêu cầu các quyền có sẵn sau:
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
Với phương thức Giới hạn đăng nhập, các nhà phát triển có thể chuyển một mã nonce dùng để xác minh quy trình xác thực trên máy chủ của họ. Để biết thông tin về cách sử dụng mã nonce để xác thực mã, hãy xem bài viết Xác thực mã OIDC cho phương thức Giới hạn đăng nhập.
Tính năng chuyển đổi ứng dụng - trong đó hộp thoại đăng nhập được hiển thị cho người dùng trong ứng dụng Facebook dành cho iOS khi họ đã đăng nhập - không được hỗ trợ cho quy trình giới hạn đăng nhập.
Facebook SDK dành cho iOS cung cấp tùy chọn liệt kê mới là FBSDKLoginTracking
. Các giá trị có thể sử dụng là enabled
và limited
. Đối với phương thức Giới hạn đăng nhập, hãy sử dụng limited
.
enum LoginTracking {
case enabled
case limited
}
Ngoài ra, phương thức Giới hạn đăng nhập sử dụng FBSDKLoginConfiguration
để sửa đổi hoạt động mặc định của lần đăng nhập. Bạn có thể tạo cấu hình này với các thuộc tính mặc định, thuộc tính rõ ràng (chỉ Swift) hoặc bằng một trong các trình khởi tạo:
init?(
permissions: Set
Thuộc tính | Mô tả |
---|---|
| Các quyền được yêu cầu cho lần đăng nhập. Mặc định là tập dữ liệu trống. |
| Các quyền được yêu cầu cho lần đăng nhập. Mặc định là tập dữ liệu trống. |
| Tùy chọn theo dõi đăng nhập. Giá trị mặc định là |
| Mã nonce dùng để tạo cấu hình. Một mã nonce duy nhất sẽ được dùng nếu không có giá trị nào được cung cấp cho phương thức ban đầu. |
Bạn sẽ không thể tạo cấu hình nếu không đáp ứng các điều kiện sau đây:
Mã nonce phải là chuỗi không trống và không chứa khoảng trống.
Bạn không thể yêu cầu những quyền nằm ngoài phạm vi theo dõi. Ví dụ: bạn không thể yêu cầu user_likes
nếu tùy chọn theo dõi là .limited
.
Để trực tiếp triển khai phương thức Giới hạn đăng nhập trong ứng dụng của bạn bằng lớp trình quản lý đăng nhập, hãy nâng cấp lên phiên bản mới nhất của Facebook SDK dành cho iOS và sử dụng mã sau:
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
}
}
Để triển khai phương thức Giới hạn đăng nhập trong ứng dụng của bạn bằng nút đăng nhập, hãy nâng cấp lên phiên bản mới nhất của Facebook SDK dành cho iOS và sử dụng mã sau:
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
}