// Copyright (c) 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef GOOGLE_APIS_GAIA_OAUTH2_ID_TOKEN_DECODER_H_
#define GOOGLE_APIS_GAIA_OAUTH2_ID_TOKEN_DECODER_H_

#include <string>
#include <vector>

// This file holds methods decodes the id token received for OAuth2 token
// endpoint, and derive useful information from it, such as whether the account
// is a child account, and whether this account is under advanced protection.

namespace gaia {

// Service flags extracted from ID token.
struct TokenServiceFlags {
  bool is_child_account = false;
  bool is_under_advanced_protection = false;
};

// Parses service flag from ID token.
TokenServiceFlags ParseServiceFlags(const std::string& id_token);

}  // namespace gaia

#endif  // GOOGLE_APIS_GAIA_OAUTH2_ID_TOKEN_DECODER_H_
