Ejemplo n.º 1
0
        /// <summary>
        /// Autentykuje użytkownika po przez wskazanego providera
        /// </summary>
        /// <param name="provider">Dostawca autentykacji</param>
        /// <returns>Konto użytkownika. Null jeśli nie udało się uwierzytelnić</returns>
        public async Task <UserPublic> AuthenticateAsync(AuthenticationProvider provider, CancellationToken cancellationToken)
        {
            AuthenticationFactory factory = new AuthenticationFactory();

            mProvider = factory.CreateProvider(provider);

            CredentialsManager credentialsManager = new CredentialsManager(provider);
            string             refreshToken       = credentialsManager.LoadToken();

            if (!string.IsNullOrEmpty(refreshToken))
            {
                return(await mProvider.RefreshUserAsync(refreshToken, cancellationToken).ConfigureAwait(false));
            }

            return(await mProvider.AuthenticateUserAsync(cancellationToken).ConfigureAwait(false));
        }