Подтвердить что ты не робот

Многократный вход Google с использованием GIDSignin

Я могу сделать аутентификацию для отдельной учетной записи, используя GIDSignIn, под кодом ниже.

    GIDSignIn *googleSignIn = [GIDSignIn sharedInstance];
    googleSignIn.delegate = self;
    googleSignIn.uiDelegate = self;
    googleSignIn.clientID = (NSString*)cGmailAppClientId;
    googleSignIn.scopes = [self getGmailAuthenticationScopes];;
    [googleSignIn signIn];

Но GIDSignIn является общим экземпляром. Это только для одной учетной записи. Как добавить несколько учетных записей? Несколько учетных записей должны быть доступны одновременно (Ex получает токен доступа).

Связанный с этим вопрос не дает правильной идеи.

4b9b3361

Ответ 1

Я не думаю, что GIDSignIn поддерживает несколько учетных записей. Хотя теоретически вы можете создавать экземпляры, отличные от sharedInstance, только одно разрешение будет сохраняться в iOS keychain за раз. (Библиотеке понадобится несколько ключей для сохранения нескольких разрешений, но если вы создали несколько экземпляров, как узнать, что было после холодного запуска?)

К счастью, есть Google GTMAppAuth , альтернативная библиотека, которая выполняет ту же цель. Это немного сложнее в использовании, чем GIDSignIn, но работает в целом одинаково. Ключевыми отличиями являются то, что 1) вы можете одновременно создавать несколько разрешений и 2) вы можете сохранить их в цепочке ключей iOS с выбранными вами ключами. Если вам интересно получить доступ к Gmail, эти шаги из популярной библиотеки MailCore2 могут оказаться полезными.

Это звучит из этой темы, так как библиотеки поддерживаются разными командами внутри компании, но я подозреваю, что пройдет какое-то время, прежде чем они сходятся, если когда-либо.