// 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.auth;

// AuthProviderFactory creates an Auth Provider that talks to a particular
// backend OAuth service such as Google, Facebook, or Twitter that can generate
// tokens as defined by |auth_provider.fidl|.
[Discoverable]
protocol AuthProviderFactory {
    // Creates an auth provider instance for the given OAuth provider.
    GetAuthProvider(request<AuthProvider> auth_provider)
        -> (AuthProviderStatus status);
};
