Пример #1
0
        public async Task <BlogResponse <string> > GenerateTokenAsync(string type, string code, string state)
        {
            var response = new BlogResponse <string>();

            if (!StateManager.IsExist(state))
            {
                response.IsFailed("Request failed.");
                return(response);
            }

            StateManager.Remove(state);

            var token = type switch
            {
                "github" => GenerateToken(await _githubService.GetUserByOAuthAsync(type, code, state)),
                "gitee" => GenerateToken(await _giteeService.GetUserByOAuthAsync(type, code, state)),
                "alipay" => GenerateToken(await _alipayService.GetUserByOAuthAsync(type, code, state)),
                "dingtalk" => GenerateToken(await _dingtalkService.GetUserByOAuthAsync(type, code, state)),
                "microsoft" => GenerateToken(await _microsoftService.GetUserByOAuthAsync(type, code, state)),
                "weibo" => GenerateToken(await _weiboService.GetUserByOAuthAsync(type, code, state)),
                "qq" => GenerateToken(await _qqService.GetUserByOAuthAsync(type, code, state)),
                _ => throw new NotImplementedException($"Not implemented:{type}")
            };

            response.IsSuccess(token);
            return(response);
        }
Пример #2
0
        public async Task <BlogResponse <List <UserDto> > > GetUsersAsync()
        {
            var response = new BlogResponse <List <UserDto> >();

            var users = await _users.GetListAsync();

            var result = ObjectMapper.Map <List <User>, List <UserDto> >(users);

            response.IsSuccess(result);
            return(response);
        }
Пример #3
0
        public async Task <BlogResponse <string> > GenerateTokenAsync([FromServices] IUserService userService, AccountInput input)
        {
            var response = new BlogResponse <string>();

            var user = await userService.VerifyByAccountAsync(input.Username, input.Password);

            var token = GenerateToken(user);

            response.IsSuccess(token);
            return(await Task.FromResult(response));
        }
Пример #4
0
        public override void OnApplicationInitialization(ApplicationInitializationContext context)
        {
            var app = context.GetApplicationBuilder();
            var env = context.GetEnvironment();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseForwardedHeaders(new ForwardedHeadersOptions
            {
                ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
                ForwardLimit     = null
            });
            app.UseHealthChecks("/api/meowv/health", new HealthCheckOptions
            {
                ResponseWriter = (context, healthReport) =>
                {
                    context.Response.ContentType = "application/json;charset=utf-8";
                    context.Response.StatusCode  = StatusCodes.Status200OK;

                    var result = healthReport.Entries.Select(x => new NameValue
                    {
                        Name  = x.Key,
                        Value = x.Value.Status.ToString()
                    });

                    var response = new BlogResponse <IEnumerable <NameValue> >();
                    response.IsSuccess(result);

                    return(context.Response.WriteAsJsonAsync(response));
                }
            });
            app.UseHsts();
            app.UseRouting();
            app.UseCors(AppOptions.Cors.PolicyName);
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseSwagger();
            app.UseSwaggerUI(options =>
            {
                options.HeadContent = @"<style>.opblock-summary-description{font-weight: bold;text-align: right;}</style>";
                options.SwaggerEndpoint($"/swagger/{AppOptions.Swagger.Name}/swagger.json", AppOptions.Swagger.Title);
                options.DefaultModelsExpandDepth(-1);
                options.DocExpansion(DocExpansion.None);
                options.RoutePrefix   = AppOptions.Swagger.RoutePrefix;
                options.DocumentTitle = AppOptions.Swagger.DocumentTitle;
            });
            app.UseAuditing();
            app.UseAbpSerilogEnrichers();
            app.UseConfiguredEndpoints();
        }
Пример #5
0
        public async Task <BlogResponse <PushUrlsCacheResponse> > PushCdnUrlsAsync(List <string> urls)
        {
            var result = new BlogResponse <PushUrlsCacheResponse>();

            var parameters = new { Urls = urls }.SerializeToJson();

            DoCdnAction(out CdnClient client, out PushUrlsCacheRequest req, parameters);

            var resp = await client.PushUrlsCache(req);

            result.IsSuccess(resp);
            return(result);
        }
Пример #6
0
        public async Task <BlogResponse <PurgePathCacheResponse> > PurgeCdnPathsAsync(List <string> paths)
        {
            var result = new BlogResponse <PurgePathCacheResponse>();

            var parameters = new { Paths = paths, FlushType = "flush" }.SerializeToJson();

            DoCdnAction(out CdnClient client, out PurgePathCacheRequest req, parameters);

            var resp = await client.PurgePathCache(req);

            result.IsSuccess(resp);
            return(result);
        }
Пример #7
0
        public async Task <BlogResponse <UserDto> > GetUserAsync(string id)
        {
            var response = new BlogResponse <UserDto>();

            var user = await _users.FindAsync(id.ToObjectId());

            if (user is null)
            {
                response.IsFailed("The user id is not exists.");
                return(response);
            }

            var result = ObjectMapper.Map <User, UserDto>(user);

            response.IsSuccess(result);
            return(response);
        }
Пример #8
0
        public async Task <BlogResponse <string> > GenerateTokenAsync([Required] string code)
        {
            var response = new BlogResponse <string>();

            var cacheCode = await _authorizeCacheService.GetAuthorizeCodeAsync();

            if (code != cacheCode)
            {
                response.IsFailed("The authorization code is wrong.");
                return(response);
            }

            var user = await _userService.GetDefaultUserAsync();

            var token = GenerateToken(user);

            response.IsSuccess(token);
            return(response);
        }