public UsersController(IUserBs userBs, IJWTAuthenticationManager JWTAuthenticationManager, ITokenRefresher tokenRefresher) { //_userService = userService; _userBs = userBs; _JWTAuthenticationManager = JWTAuthenticationManager; _tokenRefresher = tokenRefresher; }
//IUserService userService, private void attachUserToContext(HttpContext context, IUserBs userBs, string token) { try { var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); tokenHandler.ValidateToken(token, new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false, ValidateLifetime = true, // set clockskew to zero so tokens expire exactly at token expiration time (instead of 5 minutes later) ClockSkew = TimeSpan.Zero }, out SecurityToken validatedToken); var jwtToken = (JwtSecurityToken)validatedToken; var userId = int.Parse(jwtToken.Claims.First(x => x.Type == "id").Value); // attach user to context on successful jwt validation context.Items["User"] = userBs.GetById(userId); } catch (Exception ex) { var xx = ex; // do nothing if jwt validation fails // user is not attached to context so request won't have access to secure routes } }
public DashBoardController(IWorkBs ws, IMeetBs ms, ICustomerBs cus, ITaskBs ts, IUserBs us) { _ws = ws; _ms = ms; _cus = cus; _ts = ts; _us = us; }
public TokenRefresher(IOptions <AppSettings> appSettings, IJWTAuthenticationManager jWTAuthenticationManager , IHttpContextAccessor httpContextAccessor, IUserBs userBs) { _appSettings = appSettings.Value; this.jWTAuthenticationManager = jWTAuthenticationManager; _httpContextAccessor = httpContextAccessor; this.userBs = userBs; }
public JWTAuthenticationManager(IOptions <AppSettings> appSettings, IUserBs userBs, IRefreshTokenGenerator refreshTokenGenerator , IHttpContextAccessor httpContextAccessor ) { _appSettings = appSettings.Value; _userBs = userBs; this.refreshTokenGenerator = refreshTokenGenerator; UsersRefreshTokens = new Dictionary <string, string>(); _httpContextAccessor = httpContextAccessor; }
public async Task Invoke(HttpContext context, IUserBs userBs) { var token = context.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").Last(); if (token != null) { attachUserToContext(context, userBs, token); } await _next(context); }
public LogXController(IUserBs us) { _us = us; }
public HRController(IUserBs us, IRoleBs rs) { _us = us; _rs = rs; }