#pragma warning disable 1998 protected override async Task <AuthenticateResult> HandleAuthenticateAsync() #pragma warning restore 1998 { try { var authorizationString = this.Request.Headers["Authorization"].ToString(); Guid userId = Guid.Empty; //Сделать хранение тикета в куках и его восстановление. Пока проверяется при каждом запросе и только при наличии хедера авторизации if (!string.IsNullOrEmpty(authorizationString)) { var split = authorizationString.Split(" "); var token = split.Length > 1 ? split[1] : split[0]; var credentials = JWTService.DecodeUserToken(token); userId = Guid.Parse(credentials.Userid); } var identity = new UserIdentity { UserId = userId }; var principal = new GenericPrincipal(identity, null); var ticket = new AuthenticationTicket(principal, this.Scheme.Name); return(AuthenticateResult.Success(ticket)); } catch (Exception exception) { throw new AuthenticationException($"Аутентификация прошла с ошибкой: {exception}"); } }
public void CheckToken() { var token = JWTService.GenerateUserToken(Login, Password, UserId.ToString()); var obj = JWTService.DecodeUserToken(token); Assert.AreEqual(obj.Login, Login); Assert.AreEqual(obj.Password, Password); Assert.AreEqual(obj.Userid, this.UserId.ToString()); }