0

我正在使用流星 restivus 创建一个休息 api。我遇到的问题是api不会强制我登录发帖并获取我的代码如下:

Articles = new Mongo.Collection('articles');

if (Meteor.isServer) {

  // Global API configuration
  var Api = new Restivus({
    useDefaultAuth: true,
    authRequired: true,
    prettyJson: true,
	version:'v1'
  });
  
  Api.addCollection(Articles);
}

我做了一个 POST 使用:

curl -X POST http://localhost:3000/api/v1/articles/ -d "title=诙谐标题" -d "author=Jack Rose"

我做了一个 GET 使用

curl -X GET http://localhost:3000/api/v1/articles/

但在执行上述 POST 和 GET 之前,我没有收到强制我先登录的错误。我的流星应用程序使用 accounts-password 和 accounts-ui 包。在执行任何 POST 或 GET 之前,我必须做什么才能让 API 强制我登录。

4

1 回答 1

0

我设法解决了这个问题。authRequired 应该按照以下代码包含在 addCollection 中:

Articles = new Mongo.Collection('articles');

if (Meteor.isServer) {

  // Global API configuration
  var Api = new Restivus({
    useDefaultAuth: true,
    //authRequired: true,
    prettyJson: true,
    version:'v1'
  });
  
  Api.addCollection(Articles,{
		routeOptions: {
			authRequired: true
		}
  });
}

我有点白痴,因为这是在文档中。不太清楚,但在文档中仍然如此。希望这对其他人有所帮助!

只需添加:

登录后按照文档执行 GET

curl H "X-Auth-Token: etttttttt-BM2DyXsTe-Gybtttttttttttttttt3Reo" -H "X-User-Id: pwfy4viiiiiiiyz3Kp" http://localhost:3000/api/v1/articles/

并做一个这样的帖子:

curl -X POST -H "X-Auth-Token: etttttttt-BM2DyXsTe-Gybtttttttttttttttt3Reo" -H "X-User-Id: pwfy4viiiiiiiyz3Kp" http://localhost:3000/api/v1/articles/ -d "title=Witty标题”-d“作者=杰克罗斯”

于 2018-07-13T09:45:42.600 回答