Пример #1
0
        public JsonResult Register([FromBody] RegisterDto dto)
        {
            var existUser = _context.CanteenUsers.FirstOrDefault(p => p.Name == dto.Username);

            if (existUser != null)
            {
                return(Json(new RequestResult {
                    State = RequestState.Failed, Msg = "用户名已存在"
                }));
            }
            else
            {
                var newUser = new CanteenUser {
                    Name = dto.Username, Password = dto.Password, RealName = dto.RealName, Role = "user"
                };
                _context.CanteenUsers.Add(newUser);
                if (_context.SaveChanges() == 1)
                {
                    return(Json(new RequestResult {
                        State = RequestState.Success
                    }));
                }
                else
                {
                    return(Json(new RequestResult {
                        State = RequestState.Failed, Msg = "保存失败"
                    }));
                }
            }
        }
Пример #2
0
        public string GetToken([FromBody] CanteenUser user)
        {
            var existUser = this._context.CanteenUsers.FirstOrDefault(p => p.Name == user.Name && p.Password == user.Password);

            if (existUser != null)
            {
                var requestAt = DateTime.Now;

                //
                var expiresSpan = JwtAuthOption.ExpiresSpan;
                if (existUser.Role == "canteen")
                {
                    //if (existUser.Name.ToLower() == "czt")
                    expiresSpan = TimeSpan.FromHours(3);
                }
                var expiresIn = requestAt + expiresSpan;// JwtAuthOption.ExpiresSpan;
                var token     = GenerateToken(existUser, expiresIn);
                return(JsonConvert.SerializeObject(new RequestResult
                {
                    State = RequestState.Success,
                    Data = new
                    {
                        requertAt = requestAt,
                        expiresIn = expiresSpan.TotalSeconds,//JwtAuthOption.ExpiresSpan.TotalSeconds,
                        tokeyType = JwtAuthOption.TokenType,
                        accessToken = token
                    }
                }));
            }
            else
            {
                return(JsonConvert.SerializeObject(new RequestResult
                {
                    State = RequestState.Failed,
                    Msg = "用户名或密码错误"
                }));
            }
        }
Пример #3
0
        private string GenerateToken(CanteenUser user, DateTime expires)
        {
            var handler = new JwtSecurityTokenHandler();

            ClaimsIdentity identity = new ClaimsIdentity(
                new GenericIdentity(user.Name, "TokenAuth"),
                new[] {
                new Claim("ID", user.ID.ToString()),
                new Claim(ClaimTypes.Role, user.Role)
            }
                );

            var securityToken = handler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = JwtAuthOption.Issuer,
                Audience           = JwtAuthOption.Audience,
                SigningCredentials = JwtAuthOption.SigningCredentials,
                Subject            = identity,
                Expires            = expires
            });

            return(handler.WriteToken(securityToken));
        }