Beispiel #1
0
 private void SetupJWTServices(IServiceCollection services, TokenParametersModel tokenParameters)
 {
     services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
     .AddJwtBearer(options =>
     {
         options.TokenValidationParameters = new TokenValidationParameters
         {
             ValidateIssuer           = true,
             ValidateAudience         = true,
             ValidateIssuerSigningKey = true,
             ValidIssuer      = tokenParameters.IssuerKey,
             ValidAudience    = tokenParameters.AudenceKey,
             IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(tokenParameters.SecretKey))
         };
         options.Events = new JwtBearerEvents
         {
             OnAuthenticationFailed = context =>
             {
                 if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
                 {
                     context.Response.Headers.Add("token-expired", "true");
                 }
                 return(Task.CompletedTask);
             }
         };
     });
 }
        public string GenerateToken(TokenParametersModel model, string userName)
        {
            var secretKey         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(model.SecretKey));
            var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256);
            var usrModel          = _userService.GetUserByUserName(userName);
            var claims            = new List <Claim>();

            claims.Add(new Claim(Constant.UserNameString, userName));
            claims.Add(new Claim(Constant.UserIDString, usrModel.Id.ToString()));

            var tokeOptions = new JwtSecurityToken(
                issuer: model.IssuerKey,
                audience: model.AudenceKey,
                claims: claims,
                expires: DateTime.Now.AddHours(Convert.ToDouble(model.ExperyTime)),
                signingCredentials: signinCredentials
                );
            var tokenString = new JwtSecurityTokenHandler().WriteToken(tokeOptions);

            return(tokenString);
        }
Beispiel #3
0
 public AuthController(IUserService userService, ITokenService tokenService, IOptions <TokenParametersModel> tokenParameter)
 {
     _userService     = userService;
     _tokenService    = tokenService;
     _tokenParameters = tokenParameter.Value;
 }