| // 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; |
| }; |