// Copyright 2015 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.

[JavaPackage="org.chromium.mojo.authentication"]
module authentication;

// Interface to handle user identity and authentication tokens.
// TODO(qsr): This API only handles google accounts at this time. It will need
//            to be extended to allow generic account manager on the platform.
interface AuthenticationService {
  // Requests a Google account to use. In case of success, error will be null.
  // In case of error, username will be null and error will contain a
  // description of the error.
  SelectAccount() => (string? username, string? error);

  // Requests an oauth2 token for the given Google account with the given
  // scopes.  In case of error, username will be null and error will contain a
  // description of the error.
  GetOAuth2Token(string username, array<string> scopes) =>
      (string? token, string? error);

  // Requests to clear a previously acquired token. This should be called when a
  // token is refused by a server component before requesting a new token to
  // clear the token from any cache.
  ClearOAuth2Token(string token);
};
