与Mysql的本地令牌的Nodejs Passport

我希望用户能够以令牌开始会话。 无需input密码。

我正在使用护照本地令牌

https://www.npmjs.com/package/passport-local-token

但似乎这将与Mongodb合作。

任何想法?

只需使用下面的命令npm -i passport-jwt -save安装passport-jwt即可

https://jonathanmh.com/express-passport-json-web-token-jwt-authentication-beginners/

如果您在Passport JS上销售100%,我不确定是否有这个问题,但是如果您只是在寻找基本的JSON Web令牌function,请检查jsonwebtoken

  • NPM包和基本使用: https : //www.npmjs.com/package/jsonwebtoken
  • 他们的网站和video概述的安装和使用: https : //jwt.io

它们非常漂亮,您可以设置您的Web应用程序,以便服务器生成一个令牌,传递回您的前端,然后将validation响应发送回服务器。 您的令牌在服务器端进行设置,您创build的密码用于encryption和解密。 我做了一个利用它们的小项目,非常酷。 还有其他的JSONnetworking令牌,但由Auth0创build的人很好。

首先,你可以使用任何types的数据库,你想与护照或任何其他模块,例如我说我正在使用MySQL数据库( MySQL NPM包 )我只需要适应代码到SQL标准

 //Start Connection to DB var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret', database : 'my_db' }); connection.connect(); passport.use('local-token', new LocalStrategy( function(token, done) { connection.query('SELECT accessToken from AccessToken where id: ?', [token], function (error, accessToken, fields) { if (error) return done(error); if (accessToken) { if (!token.isValid(accessToken)) { return done(null, false); } connection.query('SELECT * from User where id: ?', [accessToken.userId], function (error, user, fields) { if (error) return done(error); if (!user) { return done(null, false); } return done(null, user); }) } else { return done(null); } }); }) )