class_docstr: Google authentication using OAuth2.
  
  In order to use, register your application with Google and copy the
  relevant parameters to your application settings.
  
  * Go to the Google Dev Console at http://console.developers.google.com
  * Select a project, or create a new one.
  * Depending on permissions required, you may need to set your app to
    "testing" mode and add your account as a test user, or go through
    a verfication process. You may also need to use the "Enable
    APIs and Services" command to enable specific services.
  * In the sidebar on the left, select Credentials.
  * Click CREATE CREDENTIALS and click OAuth client ID.
  * Under Application type, select Web application.
  * Name OAuth 2.0 client and click Create.
  * Copy the "Client secret" and "Client ID" to the application settings as
    ``{"google_oauth": {"key": CLIENT_ID, "secret": CLIENT_SECRET}}``
  * You must register the ``redirect_uri`` you plan to use with this class
    on the Credentials page.
  
  .. versionadded:: 3.2
class_docstr_tok: ["Google","authentication","using","OAuth2",".","In","order","to","use",",","register","your","application","with","Google","and","copy","the","relevant","parameters","to","your","application","settings",".","*","Go","to","the","Google","Dev","Console","at","http",":","\/\/console.developers.google.com","*","Select","a","project",",","or","create","a","new","one",".","*","Depending","on","permissions","required",",","you","may","need","to","set","your","app","to","``","testing","''","mode","and","add","your","account","as","a","test","user",",","or","go","through","a","verfication","process",".","You","may","also","need","to","use","the","``","Enable","APIs","and","Services","''","command","to","enable","specific","services",".","*","In","the","sidebar","on","the","left",",","select","Credentials",".","*","Click","CREATE","CREDENTIALS","and","click","OAuth","client","ID",".","*","Under","Application","type",",","select","Web","application",".","*","Name","OAuth","2.0","client","and","click","Create",".","*","Copy","the","``","Client","secret","''","and","``","Client","ID","''","to","the","application","settings","as","``","{","``","google_oauth","''",":","{","``","key","''",":","CLIENT_ID",",","``","secret","''",":","CLIENT_SECRET","}","}","``","*","You","must","register","the","``","redirect_uri","``","you","plan","to","use","with","this","class","on","the","Credentials","page",".","..","versionadded",":",":","3.2"]
docstr: Return the Google OAuth 2.0 credentials that you created with
  [Google Cloud
  Platform](https://console.cloud.google.com/apis/credentials). The dict
  format is::
  
      {
          "key": "your_client_id", "secret": "your_client_secret"
      }
  
  If your credentials are stored differently (e.g. in a db) you can
  override this method for custom provision.
docstr_tok: ["Return","the","Google","OAuth","2.0","credentials","that","you","created","with","[","Google","Cloud","Platform","]","(","https",":","\/\/console.cloud.google.com\/apis\/credentials",")",".","The","dict","format","is",":",":","{","``","key","''",":","``","your_client_id","''",",","``","secret","''",":","``","your_client_secret","''","}","If","your","credentials","are","stored","differently","(","e.g",".","in","a","db",")","you","can","override","this","method","for","custom","provision","."]
code: def get_google_oauth_settings(self) -> Dict[str, str]:
      """Return the Google OAuth 2.0 credentials that you created with
      [Google Cloud
      Platform](https://console.cloud.google.com/apis/credentials). The dict
      format is::
  
          {
              "key": "your_client_id", "secret": "your_client_secret"
          }
  
      If your credentials are stored differently (e.g. in a db) you can
      override this method for custom provision.
      """
      handler = cast(RequestHandler, self)
      return handler.settings[self._OAUTH_SETTINGS_KEY]
  
imports: import base64
  import binascii
  import hashlib
  import hmac
  import time
  import urllib.parse
  import uuid
  import warnings
  from tornado import httpclient
  from tornado import escape
  from tornado.httputil import url_concat
  from tornado.util import unicode_type
  from tornado.web import RequestHandler
  from typing import List, Any, Dict, cast, Iterable, Union, Optional
label_desc: Use image node_id 1 for calling the GoogleOAuth2Mixin obj's underlying member method code with example usage: obj.get_google_oauth_settings() and returns: handler