Student.Core.API/Controllers/AuthController.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Auth.Jwt;
using Cache.MemoryCache;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.Extensions.Logging;
using Student.Core.API.Code.WebApi;
using Student.DTO;
using Student.DTO.Login;
using Student.IServices;
using yrjw.ORM.Chimp.Result;

namespace Student.Core.API.Controllers
{
    [Description("身份认证")]
    public class AuthController : ControllerAbstract
    {
        private readonly ILoginHandler _loginHandler;
        private readonly IpHelper _ipHelper;
        private readonly Lazy<IAuthInfoService> AuthInfoService;

        public AuthController(ILogger<ControllerAbstract> logger, ILoginHandler loginHandler, IpHelper ipHelper, Lazy<IAuthInfoService> authInfoService) : base(logger)
        {
            _loginHandler = loginHandler;
            _ipHelper = ipHelper;
            AuthInfoService = authInfoService;
        }

        [HttpGet("VerifyCode")]
        [AllowAnonymous]
        [Description("获取验证码")]
        public async Task<IResultModel> VerifyCode(int length = 4)
        {
            return await AuthInfoService.Value.CreateVerifyCode(length);
        }

        [HttpPost("Login")]
        [AllowAnonymous]
        [Description("用户名登录")]
        public async Task<IResultModel> Login(LoginModel model)
        {
            model.IP = _ipHelper.IP;
            model.UserAgent = _ipHelper.UserAgent;
            var result = await AuthInfoService.Value.Login(model);
            return LoginHandle(result);
        }

        /// <summary>
        /// 登录处理
        /// </summary>
        private IResultModel LoginHandle(IResultModel result)
        {
            if (result.Success)
            {
后面还有 34 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。