如何使用 mysql 数据库在 node.js 中登录 API

How to make login API in node.js using mysql database

我是 node.js 的新手,我想使用 express 和 mysql 数据库登录 api,请与我分享您的想法和示例。

使用 Express 框架在 node.js 中创建一个 API。请通过它。这是开发 API 的简单且快速的方法。使用以下库解析您的请求

https://github.com/expressjs/body-parser

app.route('post',function(req,res,next){
   console.log(req.body);//here you will get all the API body 
   // use req.body.emailkey and req.body.passwordkey to find the user in mysql
})

请先过快递库。我希望你可以使用 express 创建任何类型的 API。

首先你应该熟悉 express 框架。

其次,您需要使用下表创建一个 mysql 数据库:

  1. 用户
    • 用户 ID |姓名 |其他领域...
  2. Authentication_tokens
    • 用户 ID |令牌

这些将成为您应用程序的构建块。基本上从这里你将能够使用单个 token 验证 http 请求,这个 token 将被分配给 userId

一旦我们设置了数据库,我们就可以开始添加 express 路由。

  1. 添加认证路由

下面的路由意味着 all 前面有 /api/v1/ 前缀的请求将通过 ./api/middlewares/validateRequest 文件在继续之前。

app.all('/api/v1/*', [require('./app/middlewares/validateRequest')]); // Authenticate all api/v1/ req

validateRequest 文件可能如下所示:

module.exports = function(req, res, next) {
  // When performing a cross domain request, you will recieve
  // a preflighted request first. This is to check if our the app
  // is safe. 
  // We skip the token outh for [OPTIONS] requests.
  //if(req.method == 'OPTIONS') next();

    // CHECK FOR A token inside the header of the request
    var token = (req.body && req.body.access_token) || (req.query && req.query.access_token) || req.headers['x-access-token'];
    var key = (req.body && req.body.x_key) || (req.query && req.query.x_key) || req.headers['x-key'];
    ... DO ALL YOUR MYSQL QUERIES HERE TO VALIDATE THE TOKEN
  1. 在下面添加您的其他路线...

如果要对路由进行身份验证,请添加 api/v1/ 前缀。

app.use('/api/v1/post/', require('./app/services/post/index.js')); 

这是一个非常基本的例子。我建议你看看一些教程!例如

  1. https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/
  2. http://teknosains.com/i/simple-crud-nodejs-mysql

如果您不想构建 mysql 数据库并自行查询,您可以考虑使用 ORM,例如 sequelize:https://github.com/sequelize/sequelize