如何连接到Heroku postgreSQL数据库以验证用户身份?

时间:2019-05-31 17:48:34

标签: ajax reactjs authentication

我已经使用React创建了一个基本的登录页面,并带有一个供用户单击和登录的按钮。我还在Heroku服务器上设置了用户名和密码的postgreSQL数据库。现在,我只需要通过检查输入的凭据是否与数据库中的凭据匹配来对用户进行身份验证。我尝试在Authenticate()函数中执行此操作。同样,通过onClick在按钮中调用Authenticate()。

现在,我已经使用jQuery Ajax进行了基本身份验证(由于此Stackoverflow帖子:Use basic authentication with jQuery and Ajax)。但是,当我按页面上的按钮时,什么也没有发生。

因为我没有指定我的URL!但是...我没有URL,因为它是服务器上的数据库。另外,我该如何检查数据库以查看是否存在匹配项?最后,如果成功,我将需要将用户重新路由到另一个页面。

Authenticate() {
var email = $("#email").val();
var password = $("#password").val();

$.ajax({
  // Adds a HTTP header with the Authentication information
  beforeSend: function(xhr) {
    xhr.setRequestHeader(
      "Authorization",
      "Basic " + btoa(email + ":" + password)
    );
  },
  type: "GET",
  url: "",
  dataType: "json",
  async: false,
  data: '{"email": "' + email + '", "password" : "' + password + '"}',
  // Successful authentication
  success: function() {
    alert("Successfully authenticated!"); // TODO: Set appropriate auth cookie
  },
  // Display error message
  complete: function(jqXHR) {
    // 401: Unauthorized
    if (jqXHR.status == "401") {
      var message = jqXHR.status + " : " + jqXHR.statusText;
      alert(message);
    }
  }
});

}

我有点菜鸟,所以为什么我有这么多问题。请裸露我。谢谢!

1 个答案:

答案 0 :(得分:0)

所以首先您必须在代码中的某个地方建立与数据库的连接。

您可能倾向于创建一个文件夹,并可能将其命名为db。在这里,您将使用名为npm的{​​{1}}包来建立连接。因此pg也可以安装一个非常有用的软件包,称为npm i pg

完成此操作后,进入您的dotenv文件夹并创建一个名为db的文件