1

現在、Google認証用にiOSアプリケーションを作成すると、クライアントIDのみが生成されます。IOSアプリケーションのサーバー側アクセスを有効にする必要があります

iOS端末では、両方のアプリ(IOSとWEb)のクライアントIDを使用してユーザーを認証し、リフレッシュトークンを生成しています。

Googleのドキュメントによると、生成されるアクセストークンは短期間で保存されています。したがって、ユーザーのアクセストークンを再生成する必要があるときは、Server-endでWeb-appのclient-idとclient-secretを使用します。

しかし、リフレッシュトークンclient-id(web app)とクライアントシークレット(web-app)を使用して新しいアクセストークンを生成しようとすると、「unauthorized client」というエラーが表示されます。トークンがクライアントIDおよびクライアントシークレットと同期していません。

ユーザーのaccess_tokenを再生成するために、サーバー側で使用するclient-idとclient-secretの組み合わせを教えてください。また、誰でもiOSアプリを生成するステップと、ユーザーの認証中にリフレッシュトークンを生成するために使用できるWebアプリを作成する手順を教えてもらえますか?

答えて

1

リフレッシュトークンは、特定のクライアント/アプリに限定されています。 iOSとウェブアプリのクライアントIDが異なるため、別のクライアントからリフレッシュトークンを使用することはできません。

iOSクライアント側では、(同じiOSクライアントの)新しいアクセストークンを取得するために、クライアントIDとリフレッシュトークン(最初は同じクライアントに与えられた)のみが必要です。 iOSクライアントのクライアントの秘密はありません。 Google Sign-in iOS SDKを使用している場合、これは自動的に処理されます。

クライアント側でログインユーザーをバックエンドサーバーに伝えたい場合は、https://developers.google.com/identity/sign-in/ios/backend-authを参照してください。

バックエンドサーバーにもアクセストークンが必要な場合は、次のようにサーバー側のアクセスを設定します。https://developers.google.com/identity/sign-in/ios/offline-access

関連する問題