| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.modular.auth; |
| |
| // Stores attributes related to an account that is exposed to base shell. |
| // A list of existing account(s) can be obtained via |
| // UserProvider.PreviousUsers() and a new account can be added via |
| // UserProvider.AddAccount(). |
| struct Account { |
| // A randomly generated identifier that is used to identify this |
| // account on this device. This is meant to be used by base shell when it |
| // wants to login as a user who has previously logged in. |
| string id; |
| |
| // The identity provider that was used to authenticate the user on this |
| // device. |
| IdentityProvider identity_provider; |
| |
| // Unique identifier configured for the given user at the Identity provider. |
| // Profile id is fetched from user profile attributes as configured by the |
| // user at the given identity provider. |
| string profile_id; |
| |
| // The name that is displayed on the base shell while logging in. Display |
| // name is fetched from user profile attributes as configured by the user at |
| // the given identity provider. |
| string display_name; |
| |
| // User's profile url that is used by the base shell while logging in. |
| // Profile url is fetched from user profile attributes as configured by the |
| // user at the given identity provider. |
| string url; |
| |
| // User's profile image url that is used by the base shell while logging in. |
| // Profile image url is fetched from user profile attributes as configured by |
| // the user at the given identity provider. |
| string image_url; |
| }; |
| |
| // The currently supported identity providers. An identity provider provides |
| // identifiers for users to interact with the system and may provide information |
| // about the user that is known to the provider. |
| enum IdentityProvider { |
| // An identity provider that's used for development and testing. If this |
| // identity provider is chosen, the Framework will continue as if it has |
| // identified the user. Note that the users that use this id provider would |
| // not get cloud ledger access (unless done via a side channel). |
| DEV = 0; |
| |
| // Uses Google as the identity provider. Doing this requires a working network |
| // connection and a web view. |
| GOOGLE = 1; |
| }; |