Une réponse tardive, je sais, mais nous espérons que cela va aider quelqu'un:
MySite peut être quelque chose comme thunderofthor.com
Étape 1:
Mettre en place OAuth 2 pattes pour la Domaine d'intérêt App Engine. Pour ce faire, connectez-vous en tant qu'admin au https://www.google.com/a/MYSITE. Sous Outils avancés, cliquez sur Gérer la clé de domaine OAuth. Cliquez ici sur "Activer cette clé client" et "Autoriser l'accès à toutes les API" pour activer ces options. Du côté de Google, vous pouvez maintenant gérer les demandes qui utilisent la clé de consommateur MYSITE et la OAUTHCONSUMERSECRET.
Étape 2:
Dans votre code de servlet, vous pouvez confirmer le client a les informations d'identification correctes en demandant l'OAuthConsumerKey qui sera MySite
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String user = null;
try {
OAuthService oauth = OAuthServiceFactory.getOAuthService();
user = oauth.getOAuthConsumerKey();
LOG.info("Authenticated: " + user);
} catch (OAuthRequestException e) {
LOG.info("Not authenticated: " + e.getMessage());
}
Étape 3:
Télécharger le package GTMOAuth de Google. Il permettra à iOS de parler à votre serveur sans effort. Vous n'aurez pas besoin de l'ensemble du paquet pour l'authentification à 2 pattes. En fait, tout ce dont vous avez besoin est les fichiers GTMOAuthAuthentication. Pour utiliser dans votre code, faites quelque chose comme ce qui suit:
NSURL *url = [NSURL URLWithString:@"https://MYSITE/dosomething"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
GTMOAuthAuthentication *auth = [[GTMOAuthAuthentication alloc] initWithSignatureMethod:kGTMOAuthSignatureMethodHMAC_SHA1 consumerKey:@"MYSITE" privateKey:@"OAUTHCONSUMERSECRET"] ;
[auth setVersion:@"1.0"];
[auth addRequestTokenHeaderToRequest:request];
// Perform request and get JSON back as a NSData object
NSHTTPURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
Là! Communication sécurisée et sans effort, sans nom d'utilisateur ni mot de passe!