Limited Login permet aux développeur·ses de signaler qu’une connexion est limitée en termes de suivi des utilisateur·ices.
Lorsqu’une tentative de connexion réussit, une instance AuthenticationToken
globale est générée. Celle-ci fournit des informations sur la connexion qui permettent de vérifier l’authentification sur les serveurs de votre clientèle. Une instance « Profile » partagée contenant des informations générales (dont l’ID spécifique à une application associé à l’utilisateur·ice, le nom de l’utilisateur·ice et la photo de profil) est également générée.
Les autorisations disponibles que vous pouvez demander sont les suivantes :
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
Limited Login permet aux développeur·ses de transmettre un nonce qui sera utilisé lors de la vérification d’une tentative d’authentification sur leurs serveurs. Pour plus d’informations sur l’utilisation du nonce pour valider les tokens, voir la page Validation du token Limited Login OIDC.
Le changement d’application, dans lequel la boîte de dialogue de connexion est présentée à l’utilisateur·ice dans l’application Facebook pour iOS lorsqu’il ou elle y est déjà connecté·e, n’est pas pris en charge pour les flux de connexion limités.
Le SDK Facebook pour iOS fournit une nouvelle énumération FBSDKLoginTracking
. Les valeurs possibles sont enabled
et limited
. Pour Limited Login, utilisez la valeur limited
.
enum LoginTracking {
case enabled
case limited
}
Limited Login utilise également FBSDKLoginConfiguration
pour modifier le comportement par défaut d’une tentative de connexion. Cette configuration doit être créée avec les propriétés par défaut, des propriétés explicites (Swift uniquement) ou l’un des nombreux initialiseurs suivants :
init?(
permissions: Set
Propriété | Description |
---|---|
| Autorisations demandées pour la tentative de connexion. La valeur par défaut est un ensemble vide. |
| Autorisations demandées pour la tentative de connexion. La valeur par défaut est un ensemble vide. |
| Préférence de suivi de la connexion. Valeur par défaut : |
| Nonce avec lequel la configuration a été créée. Un nonce unique sera utilisé si aucun nonce n’a été fourni à la méthode de fabrique. |
Les conditions suivantes doivent être remplies pour qu’une configuration soit créée :
Le nonce doit être une chaîne non vide sans espace.
Vous ne pouvez pas demander des autorisations qui sortent du champ d’application du suivi. Par exemple, demander user_likes
ne fonctionne pas si le suivi est défini sur .limited
.
Pour implémenter Limited Login dans votre application directement avec la classe « login manager », passez à la version la plus récente du SDK Facebook pour iOS, et utilisez le code suivant :
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
}
}
Pour implémenter Limited Login dans votre application avec le bouton de connexion, passez à la version la plus récente du SDK Facebook pour iOS, et utilisez le code suivant :
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
}