Поздний ответ я знаю, но, надеюсь, это кому-нибудь поможет:
MYSITE может быть что-то вроде thunderofthor.com
Шаг 1:
Настройте двухстороннюю OAuth для интересующего домена App Engine.Для этого войдите в систему с правами администратора как https://www.google.com/a/MYSITE. В разделе «Дополнительные инструменты» нажмите «Управление ключом домена OAuth».Здесь нажмите «Включить этот ключ пользователя» и «Разрешить доступ ко всем API», чтобы включить эти параметры.На стороне Google вы теперь можете обрабатывать запросы, которые используют ключ пользователя MYSITE и OAUTHCONSUMERSECRET .
Шаг 2:
В вашем коде сервлетаВы можете подтвердить, что клиент имеет правильные учетные данные, запросив OAuthConsumerKey, который будет 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());
}
Шаг 3:
Загрузите GTMOAuth пакет от Google.Это позволит iOS легко общаться с вашим сервером.Вам не понадобится весь пакет для двухстороннего аутентификации.На самом деле все, что вам нужно, это файлы GTMOAuthAuthentication.Чтобы использовать в своем коде, сделайте что-то вроде следующего:
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];
Там!Безопасное общение без лишних усилий, без имени пользователя и пароля!