Authorizing requests

When your application requests private data, the request must be authorized by an authenticated user who has access to that data.

Every request your application sends to the Cloud DNS API must include an authorization token. The token also identifies your application to Google.

About authorization protocols

Your application must use OAuth 2.0 to authorize requests. No other authorization protocols are supported. If your application uses Google Sign-In, some aspects of authorization are handled for you.

Authorizing requests with OAuth 2.0

All requests to the Cloud DNS API must be authorized by an authenticated user.

The details of the authorization process, or "flow," for OAuth 2.0 vary somewhat depending on what kind of application you're writing. The following general process applies to all application types:

  1. When you create your application, you register it using the Google Cloud Console. Google then provides information you'll need later, such as a client ID and a client secret.
  2. Activate the Cloud DNS API in the Google Cloud Console. (If the API isn't listed in the Cloud Console, then skip this step.)
  3. When your application needs access to user data, it asks Google for a particular scope of access.
  4. Google displays a consent screen to the user, asking them to authorize your application to request some of their data.
  5. If the user approves, then Google gives your application a short-lived access token.
  6. Your application requests user data, attaching the access token to the request.
  7. If Google determines that your request and the token are valid, it returns the requested data.

Some flows include additional steps, such as using refresh tokens to acquire new access tokens. For detailed information about flows for various types of applications, see Google's OAuth 2.0 documentation.

Here's the OAuth 2.0 scope information for the Cloud DNS API:

Scope Meaning Read/write access Read-only access

To request access using OAuth 2.0, your application needs the scope information, as well as information that Google supplies when you register your application (such as the client ID and the client secret).


This example demonstrates a simple OAuth 2.0 flow using JavaScript that asks the user to authorize your app to make requests on their behalf. The user must have owner or editor access to the project in the team area of the Google Cloud Console. The OAuth 2.0 scope grants your app access to read and write to the Cloud DNS API.

<button id="authButton">Authorize</button>
<script type="text/javascript">
// Array of scopes
var authParams = {
  'response_type' : 'token', // Retrieves an access token only
  'client_id' : '', // Client ID from Cloud Console
  'immediate' : false, // For the demo, force the auth window every time
  'scope' : ['']  // Array of scopes

function myCallback(authResult){
  if (authResult && authResult['access_token']) {
    // User granted authorization
    // Set the token for later API calls
    ... // Next step, load API and query API
  } else {
    // Authorization failed or user declined

// Attach a click even to an authorization button. Use clicks to trigger
// the flow so that the pop-up window succeeds.
document.getElementById('authButton').onclick = function(){
  gapi.auth.authorize(authParams, myCallback)

Now that you are authenticated, you can interact with the Cloud DNS API.