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