示例#1
0
        public static string GenerateTokenJwt(AuthUserVM user)
        {
            var secretKey  = ConfigurationManager.AppSettings["JWT_SECRET_KEY"];
            var expireTime = ConfigurationManager.AppSettings["JWT_EXPIRE_MINUTES"];

            var now = DateTime.UtcNow;

            var securityKey        = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey));
            var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature);

            ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[] {
                new Claim(ClaimTypes.Name, user.Username),
                new Claim(ClaimTypes.Email, user.Email),
                new Claim(ClaimTypes.Role, user.Role.RoleName)
            });

            var tokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler();

            var jwtSecurityToken = tokenHandler.CreateJwtSecurityToken(
                subject: claimsIdentity,
                notBefore: now,
                expires: now.AddMinutes(Convert.ToInt32(expireTime)),
                signingCredentials: signingCredentials);

            var jwtTokenString = tokenHandler.WriteToken(jwtSecurityToken);

            return(jwtTokenString);
        }
示例#2
0
        public async Task <IHttpActionResult> Authenticate(AuthUserVM filter)
        {
            var result = await Task.FromResult(_service.Authenticate(filter.Username, filter.Password));

            if (result.StatusCode != HttpStatusCode.OK)
            {
                return(Result(result));
            }

            ((AuthUserVM)result.Result).Token = Authorization.TokenGenerator.GenerateTokenJwt((AuthUserVM)result.Result);

            return(Result(result));
        }