2017-06-29 6 views
0

ゲイン:グーグルサインイン - 私はこのようなiOSの上で私のユーザーでログインしてる新しいServerAuthCode

[GIDSignIn sharedInstance].clientID = kGoogleClientID; // From services.plist 
[GIDSignIn sharedInstance].serverClientID = kGoogleServerID; // from api console, web application 

// those two are not needed for the auth code 
[GIDSignIn sharedInstance].shouldFetchBasicProfile = YES; 
[GIDSignIn sharedInstance].scopes = @[@"email", @"profile"]; 

[GIDSignIn sharedInstance].delegate = self; 

[[GIDSignIn sharedInstance] signIn] 

ログイン画面が登場し、ユーザーがログインした後、私はこのようなserverAuthCodeを得ることができます。

- (void)signIn:(GIDSignIn *)signIn 
didSignInForUser:(GIDGoogleUser *)user 
    withError:(NSError *)error { 

    // Perform any operations on signed in user here 
    if (nil == error) 
    { 

     NSLog(@"Google Server Auth Code:%@", user.serverAuthCode); 
    } 
} 

これは初めてのことですが、ユーザーがアプリを再起動して再びGoogleにログインすると、ログイン画面が再び表示される必要はありません。したがって、signInは即座に成功しますが、新しい自動コードはありません。また、サーバー上で別のログインを実行するために別のserverAuthCodeが必要な場合もありますが、別のログイン画面でユーザーを煩わしたくない場合もあります。

すでにログインしているユーザーに対して、新しいserverAuthCodeを取得するにはどうすればよいですか?

答えて

0

iOS用.NET Google SignIn SDKで同じ問題が発生しました。

これは、誰かがsignInを呼び出す前にsignOut権利を呼び出す示唆したコメントではGoogle Sign-In for iOS: serverAuthCode is intermittently missing

に関連しているようです。

.NET SDKを使用して私の問題を解決しました。ユーザーは強制的に再度接続します。

+0

確かに可能ですが、ユーザーにとっては非常に面倒です。 – keyboard

+0

同意します。私の側では、このトークンを一度取り込んでリフレッシュトークンを処理するだけでよいので、これは許容される解決策ですが、それがあなたのニーズに合致しないかどうかはわかります。 解決策以上の回避策です。しかし、これはSDKのバグであり、https://issuetracker.google.com/issues/63673654に従って修正されていない可能性があります –

関連する問題

 関連する問題