をリフレッシュこんにちは、私はに係る作業グーグルのOAuth 2明示的な流れがあります。GoogleのiOSのOAuthの2暗黙の流れ、手動でトークン
https://developers.google.com/identity/protocols/OAuth2WebServer
を私も暗黙の流れがGIDSignInとiOSの上で作業している、特にI GIDSignInDelegate::sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)
コールバックを取得し、user.authentication.accessToken
とuser.authentication.refreshToken
にアクセスしてください。
私はプライベートアプリケーションサーバーにそのrefreshToken
を返すようにしています。主に、フロントエンドの開発者がrawアプリケーションを扱うよりもSDKにサインインするほうが簡単だからです。 URLリクエスト)。
しかし、私は、バックエンドに新しいアクセストークンを取得するために、そのリフレッシュトークンを使用しようとすると:
curl --request POST \
--url https://www.googleapis.com/oauth2/v4/token \
--header 'cache-control: no-cache' \
--header 'content-type: application/x-www-form-urlencoded' \
--data 'client_id={client_id}&client_secret={client_secret}&refresh_token={refresh_token}&grant_type=refresh_token'
それが返されます。
{ "error": "invalid_grant", "error_description": "Bad Request" }
私は問題があることだと思います私のサーバーにはクライアントIDとシークレットがありますが、iOSにはクライアントIDしかありません。 iOSクライアントIDに対応する秘密(キーとも呼ばれることもあります)がなければ、バックエンドのトークンをリフレッシュする方法はありません。私は、GoogleがサーバーのクライアントIDとiOSのクライアントIDの両方が同じアプリに登録されていることを検出し、サーバーがその資格情報でトークンを更新できるようにすることを期待していましたが、うまくいきませんでした。
私がで "APIキー" と "OAuth 2.0のクライアントID" セクションの両方を見てきました:
https://console.developers.google.com/apis/credentials
しかし、途方に暮れています。
iOS SDKで取得したトークンをリフレッシュするためのcurlコマンドを知っている人はいますか?
これは簡単ではありませんか?
ありがとうございます!これを読んで、誰のために