Пример #1
0
        public async Task <string> Authenticate([FromBody] AuthenticateModel login)
        {
            ValidateLoginInfo(login);
            var configuration = new IdentityClientConfiguration(
                ClientOptions.IdentityClients.Default.Authority,
                ClientOptions.IdentityClients.Default.Scope,
                ClientOptions.IdentityClients.Default.ClientId,
                ClientOptions.IdentityClients.Default.ClientSecret,
                ClientOptions.IdentityClients.Default.GrantType,
                login.UserName,
                login.Password,
                false);

            try
            {
                return(await _authenticationService.GetAccessTokenAsync(configuration));
            }
            catch (AbpException e)
            {
                if (e.Message.Contains("invalid_username_or_password"))
                {
                    throw new UserFriendlyException("账号或密码错误");
                }

                throw;
            }
        }
        public virtual async Task AuthenticateAsync(DaprActorProxyAuthenticateContext context)
        {
            var identityClientName = context.RemoteService.GetIdentityClient();
            var configuration      = GetClientConfiguration(identityClientName);

            if (configuration == null)
            {
                Logger.LogWarning($"Could not find {nameof(IdentityClientConfiguration)} for {identityClientName}. Either define a configuration for {identityClientName} or set a default configuration.");
                return;
            }
            var accessToken = await IdentityModelAuthenticationService.GetAccessTokenAsync(configuration);

            if (accessToken == null)
            {
                return;
            }

            SetAccessToken(context.Handler, accessToken);
        }