En-tête d'autorisation OAuth 2
Avec une mise à jour du client de l'API de la HTTPBasicAuthication méthode a été remplacer par un OAuth2 Bearer
en-tête d'Autorisation.
Avec l'ancienne API, je voudrais faire ce qui suit:
NSURLCredential *credential = [NSURLCredential credentialWithUser:self.account.username
password:self.account.token
persistence:NSURLCredentialPersistenceForSession];
NSURLProtectionSpace *space = [[NSURLProtectionSpace alloc] initWithHost:kAPIHost
port:443
protocol:NSURLProtectionSpaceHTTPS
realm:@"my-api"
authenticationMethod:NSURLAuthenticationMethodHTTPBasic];
Mais cela ne fonctionne pas avec le Bearer
en-tête.
Maintenant normalement, je voudrais juste ajouter l'en-tête de mon auto en l'ajoutant comme suit:
NSString *authorization = [NSString stringWithFormat:@"Bearer %@",self.account.token];
[urlRequest setValue:authorization forHTTPHeaderField:@"Authorization"];
Mais le problème avec ces solutions, c'est que l'API de rediriger la plupart des appels vers d'autres Url, ce qui a à voir avec la sécurité.
Après la NSURLRequest
obtient redirigé l'en-tête d'Autorisation est retirée de la demande et depuis je suis incapable d'ajouter le Porteur de la méthode de la NSURLCredentialStorage
il ne peut pas s'authentifier plus après avoir été redirigé.
Ce serait une bonne solution? Je ne peux que penser à attraper le rediriger et modifier le NSURLRequest
de sorte qu'il ne comprennent la Bearer
en-tête. Mais comment?
source d'informationauteur rckoenes
Vous devez vous connecter pour publier un commentaire.
Bien après beaucoup de recherche j'ai découvert que je vais juste avoir à remplacer la
NSURLRequest
lorsqu'un appel est redirigé.Pas aussi beau que je le voudrais, mais ne fonctionne pas.
J'ai utilisé
AFNetworking
et ajouté la redirection à bloc, puis vérifier si leAuthorization
en-tête est toujours pas si je créer un nouveauNSMutableURLRequest
et de définir toutes les propriétés pour correspondre à l'ancien demande (je sais que je pourrais avoir créé une mutable copie):Je suis en utilisant AFNetworking Bibliothèque
Trouver AFHttpClient.m et vous avez une méthode
remplacer cette méthode par la suite ou si vous en avez besoin pour le retour à la compatibilité de garder un complément avec un nom différent et utiliser ce nom
puis d'en faire la demande avec le jeton d'accès oauth. (La suite est une méthode de service)
Mis à jour
Utilisation Oauth2 Client sur AFNetworking écrit par matt
https://github.com/AFNetworking/AFOAuth2Client
S'il vous arrive d'avoir ce problème avec Django repos cadre et les routeurs le problème pourrait être lié à la slash de fin d'être coupé par la NSUrlRequest. si le slash est coupé puis django aura pour rediriger votre demande, pour éviter cela, vous pouvez utiliser Trailing_slash = True comme ce
De cette façon pas de votre en-tête d'autorisation ni vos paramètres seront perdus.
Espère que cela sauve quelqu'un certain temps.