blob: f3d4e280f7f36a696cd91e291459361e57d32c96 [file] [log] [blame]
// Copyright 2016 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.
module authentication;
// Specifies if the type of stored credential is a plain text password,
// password in encrypted form, fully scoped master OAuth token or
// downscoped OAuth token.
enum CredentialType {
DOWNSCOPED_OAUTH_REFRESH_TOKEN = 1,
};
// Specifies the type of identity provider for authenticating user.
enum AuthProvider {
GOOGLE = 1,
};
// This struct is used to persist long lived credentials for each user and is
// not passed between services.
struct Credentials {
// The type of authentication service provider such as Google, Facebook,
// Twitter, or Amazon.
AuthProvider auth_provider;
// Password or equivalent token grant that acts as the key to user data such
// as encrypted password or fully scoped master OAuth token.
string token;
// Type of stored credential.
CredentialType credential_type;
// List of permissible scopes for this saved grant.
string scopes;
};
// Database for the credentials database implementation.
struct CredentialStore {
// Version of the database.
uint32 version;
// Map from user account to credentials. User account is identified by a
// user's unique account name such as email id.
map<string, Credentials> credentials;
};