public ApiResponse SignIn(AuthSignIn authSignIn) { AuthRepository authRepository = this.authApplication.SignInFromAPI(authSignIn); AuthToken authToken = new AuthToken() { Token = authRepository.Token, ExpiredAt = authRepository.ExpiredAt }; return(new ApiResponseData(HttpStatusCode.OK, authToken)); }
/// <summary> /// Checks wether Credentials are valid or not /// </summary> /// <param name="authSignIn">Injected <see cref="AuthSignIn"/></param> /// <returns>Instance of <see cref="bool"/></returns> public bool CanAuthenticate(AuthSignIn @authSignIn) { bool @result = false; if (ApiSettings.Value.ApiLock.Equals(@authSignIn.UserName) && ApiSettings.Value.ApiKey.Equals(@authSignIn.PassWord)) { @result = true; } return(@result); }
public void SignIn() { AuthSignIn viewModel = new AuthSignIn() { Email = "*****@*****.**", Password = "******" }; Exception exception = Assert.ThrowsAsync <Exception>(async() => await Service.SignIn(viewModel)); Assert.Pass(); }
/// <summary> /// Gets Authentication Ticket /// </summary> /// <param name="authSignIn">Injected <see cref="AuthSignIn"/></param> /// <returns>Instance of <see cref="AuthenticationTicket"/></returns> public AuthenticationTicket GetAuthenticationTicket(AuthSignIn @authSign) { List <Claim> @claims = new() { new Claim(ClaimTypes.Name, @authSign.UserName), new Claim(ClaimTypes.System, Environment.MachineName), }; return(new AuthenticationTicket( new ClaimsPrincipal(identity: new ClaimsIdentity(claims: @claims, authenticationType: Scheme.Name)), authenticationScheme: Scheme.Name)); }
public AuthRepository SignInFromAPI(AuthSignIn authSignIn) { UserRepository userRepo = this.userQueryRepository.FindByEmail(authSignIn.Email); if (userRepo.Email == null) { throw (new DataNotFoundException("Email")); } else if (!BC.Verify(authSignIn.Password, userRepo.Password)) { throw (new EmailAndPasswordException()); } DateTime expiredAt = DateTime.UtcNow.AddYears(1); return(new AuthRepository() { ExpiredAt = expiredAt, Token = AuthUtility.GenerateJwtToken(userRepo.Id) }); }
/// <summary> /// Signs In /// </summary> /// <param name="viewModel">Injected <see cref="AuthSignIn"/></param> /// <returns>Instance of <see cref="Task{ViewApplicationUser}"/></returns> public async Task <ViewApplicationUser> SignIn(AuthSignIn @viewModel) { SignInResult signInResult = await SignInManager.PasswordSignInAsync(@viewModel.Email, @viewModel.Password, false, true); if (signInResult.Succeeded) { ApplicationUser @applicationUser = await FindApplicationUserByEmail(@viewModel.Email); @applicationUser.ApplicationUserTokens.Add(new ApplicationUserToken { Name = Guid.NewGuid().ToString(), LoginProvider = JwtSettings.Value.JwtIssuer, ApplicationUser = @applicationUser, UserId = @applicationUser.Id, Value = TokenService.WriteJwtToken(TokenService.GenerateJwtToken(@applicationUser)) }); // Log string @logData = @applicationUser.GetType().Name + " with Email " + @applicationUser.Email + " logged in at " + DateTime.Now.ToShortTimeString(); Logger.WriteUserAuthenticatedLog(@logData); return(Mapper.Map <ViewApplicationUser>(@applicationUser)); } else { throw new Exception("Authentication Error"); } }