public async Task <IActionResult> Callback(string token, string address, string type) { // Authenticates the token Result <User> result = await _crossConnectionManager.AuthenticateUser(address, token); if (result.Failure) { return(StatusCode(result.Code, result.Error)); } // Signs in with cookie if web, otherwise returns JWT if (type == "web") { return(await SignInUser(result.Value, Redirect("/"))); } if (type == "api") { return(Ok(JwtToken.CreateToken(result.Value.Username, result.Value.UserID.ToString(), _config.PrivateKey))); } return(BadRequest()); }
// Authenticates a user public async Task <Result <string> > Authenticate(string username, string password) { // Gets a user and returns failure if details are incorrect User user = await _repository.GetUserAsync(username); if (user == null) { return(Result.Fail <string>("username incorrect", 400)); } if (!user.CheckPassword(password)) { return(Result.Fail <string>("password incorrect", 400)); } if (user.Deleted) { return(Result.Fail <string>("username incorrect", 400)); } // Creates and returns a JWT token string token = JwtToken.CreateToken(username, user.UserID.ToString(), _config.PrivateKey); return(Result.Ok(token)); }
public async Task <IActionResult> Login(LoginRequest request) { string token = JwtToken.CreateToken(request.userName, request.password); return(new StringResultObject(Request, token)); }