使用Passport授权设置Postman进行APItesting

在testing我的应用程序的API时,我试图让邮递员工作时有点困惑。 即,我正在使用Passport身份validation; 然而,我不知道哪种types默认或在我的代码中使用。 我怎样才能知道这一点,我应该select哪种types的邮递员?

这是相关的护照代码:

var login = require('./login'); var signup = require('./signup'); var User = require('../models/user'); module.exports = function(passport, path, nodemailer, sesTransport, EmailTemplate, templateDir, template){ // Passport needs to be able to serialize and deserialize users to support persistent login sessions passport.serializeUser(function(user, done) { //console.log('serializing user: ');console.log(user); done(null, user._id); }); passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { //console.log('deserializing user:',user); done(err, user); }); }); // Setting up Passport Strategies for Login and SignUp/Registration login(passport); signup(passport, path, nodemailer, sesTransport, EmailTemplate, templateDir, template); } 

最后,几乎所有的API点都只在用户login时才起作用。我如何通过保存授权凭证来模拟Postman中的相同行为?

编辑:

 Perhaps this code is relevant as well: module.exports = function(passport){ passport.use('login', new LocalStrategy({ passReqToCallback : true, usernameField: 'email', passwordField: 'password' }, function(req, username, password, done) { // check in mongo if a user with username exists or not User.findOne({ 'email' : username }, function(err, user) { // In case of any error, return using the done method if (err) return done(err); // Username does not exist, log the error and redirect back if (!user){ console.log('User Not Found with username '+username); return done(null, false, req.flash('message', 'User Not found.')); } // User exists but wrong password, log the error if (!isValidPassword(user, password)){ console.log('Invalid Password'); return done(null, false, req.flash('message', 'Invalid Password')); // redirect back to login page } // User and password both match, return user from done method // which will be treated like success return done(null, user); } ); }) ); var isValidPassword = function(user, password){ return bCrypt.compareSync(password, user.password); } } 

我没有运行本地身份validation策略的代码,但是我认为以下邮递员设置应该适合您。

请求访问令牌; 假设您的端点是auth / local。

  1. 打开邮差
  2. 创build一个POST请求
  3. 在授权选项卡下设置“无validation”
  4. 在body标签下 – >点击x-www-form-urlencoded
  5. 添加一个名为email的密钥并input用户电子邮件
  6. 添加一个名为密码的密钥,并input电子邮件的相关密码

查看下面的令牌请求截图:

localAuthentication

响应将返回一个access_token。

要使用access_token,只需创build一个HTTP请求,然后在HEADER选项卡中添加一个密钥Authorization,后跟一个值“Bearer

请参阅使用令牌请求截图: 在这里输入图像描述