public async Task <LoginTokens> GetTokens() { var ApiUsername = configuration.GetValue <string>("Galileo:username"); var ApiPassword = configuration.GetValue <string>("Galileo:password"); var ApiUrl = configuration.GetValue <string>("Galileo:url"); using (var httpClient = new HttpClient()) { var values = new Dictionary <string, string> { { "username", ApiUsername }, { "password", ApiPassword } }; var content = new FormUrlEncodedContent(values); var response = await httpClient.PostAsync(ApiUrl + "/login", content); var responseString = await response.Content.ReadAsStringAsync(); var options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }; LoginTokens tokens = JsonSerializer.Deserialize <LoginTokens> (responseString, options); return(tokens); } }
public static bool SignUp(NameValueCollection Headers, ref Response response) { string uname = Headers["username"], pword = Headers["password"]; if (uname != null && pword != null) { if (Data.Objects.User.Find(uname) == null) { Data.Objects.User user = new Data.Objects.User(uname, pword); MemoryHandler.Users.Insert(user); response.AddCookie("authtoken", LoginTokens.CreateToken(user)); response.StatusCode = 200; } else { response.AddToData("Error", "User already exists"); response.StatusCode = 401; } } else { response.StatusCode = 400; response.AddToData("Error", "username & password must be provided"); } return(false); }
public static bool SignIn(NameValueCollection Headers, ref Response response) { string uname = Headers["username"], pword = Headers["password"]; if (uname != null && pword != null) { Data.Objects.User user = Data.Objects.User.Find(uname); if (user != null && Hashing.Match(user.hashPassword, pword)) { response.AddCookie("authtoken", LoginTokens.CreateToken(user)); response.StatusCode = 200; return(true); } else { response.AddToData("Error", "User doesnt exist or password is wrong"); response.StatusCode = 401; } } else { response.StatusCode = 400; response.AddToData("Error", "username & password must be provided"); } return(false); }
public static bool DeleteAccount(NameValueCollection Headers, ref Response response) { string token = Headers["authtoken"], uname = Headers["username"]; if (token != null && uname != null) { if (LoginTokens.IsLoggedIn(uname, token)) { Data.Objects.User user = LoginTokens.FindUserByName(uname); MemoryHandler.Users.DeleteMany(x => x.userName == user.userName); response.StatusCode = 200; } else { response.StatusCode = 401; response.AddToData("Error", "authtoken is not valid"); } } else { response.StatusCode = 400; response.AddToData("Error", "username & authtoken must be provided"); } return(false); }
private LoginTokens GetTokensForUser(string email) { var user = _accountRepository.GetUserByEmail(email); var accessToken = _accessTokenService.CreateToken(user); var refreshToken = _refreshTokenService.CreateToken(user); var refreshTokenPayload = _jwtService.GetJwtPayload(refreshToken); _accountRepository.UpdateUserRefreshTokenId(email, refreshTokenPayload.jti); var loginTokens = new LoginTokens(accessToken, refreshToken); return(loginTokens); }
public async Task <bool> CreateUser(string username) { var ApiUrl = configuration.GetValue <string>("Galileo:url"); // Note: This returns valid tokens LoginTokens tokens = await GetTokens(); // Note: This returns valid agreements AgreementsInfo agreements = await GetAgreements(tokens.Access_Token); // Note: Having trouble with the final POST to actually create the cardholder int cardholder_id = await CreateCardHolder(tokens.Access_Token, agreements, username); return(true); }
public static bool Logout(NameValueCollection Headers, ref Response response) { string token = Headers["authtoken"], uname = Headers["username"]; if (token != null && uname != null) { if (LoginTokens.RemoveUser(uname, token)) { response.StatusCode = 200; } else { response.StatusCode = 401; response.AddToData("Error", "You are already signed out"); } } else { response.StatusCode = 400; response.AddToData("Error", "username & authtoken must be provided"); } return(false); }
public LoginToken CheckLoginToken(string key) { LoginToken loginToken = LoginTokens.SingleOrDefault(token => PasswordHash.ValidatePassword(key, token.Key)); return(loginToken); }
public void GenerateLoginToken(Guid key) { LoginTokens.Add(new LoginToken(this, key)); }