Javascript Keystone CMS Rest API身份验证

Javascript Keystone CMS Rest API身份验证,javascript,openstack,keystonejs,Javascript,Openstack,Keystonejs,所以我是keystone CMS的新来者,它看起来很棒 我已经设置了基本结构,并使用keystone提供的默认博客项目,所以现在我正在尝试为我的管理员构建RESTAPI 当我在keystone管理面板的浏览器中登录时,RESTAPI工作正常,但当我测试时,即使在设置了基本的身份验证之后,它仍然是postman,这给了我HTML页面 我不知道这有什么问题,也不知道如何正确设置 这是我在index.js中的代码 var _ = require('underscore'), keyst

所以我是keystone CMS的新来者,它看起来很棒 我已经设置了基本结构,并使用keystone提供的默认博客项目,所以现在我正在尝试为我的管理员构建RESTAPI 当我在keystone管理面板的浏览器中登录时,RESTAPI工作正常,但当我测试时,即使在设置了基本的身份验证之后,它仍然是postman,这给了我HTML页面 我不知道这有什么问题,也不知道如何正确设置

这是我在index.js中的代码

    var _ = require('underscore'),
    keystone = require('keystone'),
    middleware = require('./middleware'),
    // restful = require('restful-keystone-onode')(keystone),
   importRoutes = keystone.importer(__dirname);

 // Common Middleware
 keystone.pre('routes', middleware.initLocals);
 keystone.pre('render', middleware.flashMessages);

 // Import Route Controllers
 var routes = {
   views: importRoutes('./views'),
   api: importRoutes('./api'),
};

// create a route that handles signin

 function signin (req, res) {

   if (!req.body.username || !req.body.password) return res.json({ 
success: false });

    keystone.list('User').model.findOne({ email: req.body.username 
}).exec(function (err, user) {

        if (err || !user) {
         return res.json({
            success: false,
            session: false,
             message: (err && err.message ? err.message : false) || 'Sorry, 
there was an issue signing you in, please try again.',
          });
      }

       keystone.session.signin({ email: user.email, password: 
 req.body.password }, req, res, function (user) {

         return res.json({
            success: true,
            session: true,
            date: new Date().getTime(),
            userId: user.id,
         });

      }, function (err) {

            return res.json({
            success: true,
            session: false,
            message: (err && err.message ? err.message : false) || 'Sorry, 
there was an issue signing you in, please try again.',
         });

      });

    }); 
}

// you'll want one for signout too
function signout (req, res) {
   keystone.session.signout(req, res, function () {
      res.json({ signedout: true });
   });
}
//还要创建一些检查当前用户的中间件

//只要您使用Keystone的会话管理,用户 //如果存在有效的当前会话,则将已加载

function checkAuth (req, res, next) {
      // you could check user permissions here too
   if (req.user) return next();
   return res.status(403).json({ error: 'no access' });
}

// Setup Route Bindings
exports = module.exports = function (app) {

   // Views
   app.get('/', routes.views.index);
   app.get('/blog/:category?', routes.views.blog);
   app.get('/blog/post/:post', routes.views.post);
   app.get('/gallery', routes.views.gallery);
   app.all('/contact', routes.views.contact);

   // add an API endpoint for signing in _before_ your protected routes
   app.post('/api/signin', signin);
   app.post('/api/signout', signout);

 // then bind that middleware in your routes before any paths
 // that should be protected
   app.all('/api*', checkAuth);


   //
   app.get('/api/post/list', keystone.middleware.api, 
routes.api.posts.get);
   app.get('/api/post/:id', keystone.middleware.api, 
routes.api.posts.get);

};
这是我的路线/api/post.js /** *由nikk于2017年11月5日创建。 */ var async=require('async'), keystone=需要(“keystone”)

从最后一天开始,我一直在努力完成这件事,但直到现在我还不能工作 请引导我。

这里:
 var Post = keystone.list('Post');

 /**
 * List Posts
 */
  exports.list = function(req, res) {
    Post.Modal.find(function(err, items) {

       if (err) return res.apiError('database error', err);

       // res.apiResponse({
       //     posts: items
       // });

       res.json(items);

    });
 }

 /**
  * Get Post by ID
 */
  exports.get = function(req, res) {
     Post.model.findById(req.params.id).exec(function(err, item) {

       if (err) return res.apiError('database error', err);
        if (!item) return res.apiError('not found');

       res.apiResponse({
          post: item
       });

       // res.json(item);
    });

 }