Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用基于令牌的身份验证保护Sails.js中的API路由?_Javascript_Api_Sails.js - Fatal编程技术网

Javascript 使用基于令牌的身份验证保护Sails.js中的API路由?

Javascript 使用基于令牌的身份验证保护Sails.js中的API路由?,javascript,api,sails.js,Javascript,Api,Sails.js,我是Sails.js的新手。我使用sailsgenerateapi[name]命令创建了一个新项目和一些api。这些新API具有完整的CRUD功能,因此我可以获取、发布、放置等。为了保护它们,我实现了一个标准的基于令牌的身份验证系统,供访问我的API的客户端使用。令牌也会持久保存在数据库中 我有两个问题: 如何禁用特定路由上的某些操作(例如,在/user API上启用GET请求,但不在/account API上启用GET请求,但允许在/account API上发布帖子) 我希望客户端为每个身份验

我是Sails.js的新手。我使用
sailsgenerateapi[name]
命令创建了一个新项目和一些api。这些新API具有完整的CRUD功能,因此我可以获取、发布、放置等。为了保护它们,我实现了一个标准的基于令牌的身份验证系统,供访问我的API的客户端使用。令牌也会持久保存在数据库中

我有两个问题:

  • 如何禁用特定路由上的某些操作(例如,在/user API上启用GET请求,但不在/account API上启用GET请求,但允许在/account API上发布帖子)
  • 我希望客户端为每个身份验证后请求返回生成的访问令牌。当他们这样做时,在允许访问请求的路由之前,我如何拦截请求并检查数据库中是否存在令牌
  • 多谢各位

  • 您需要创建策略来防止未经身份验证的用户执行某些请求。我在这里考虑GET/用户和GET/Actudio将被路由到find函数。并将POST/account路由到create函数。 在config/policies.js中:

    module.exports.policies = {
     'UserController': {
      'create': 'isAuth',
      'find': true
      },
     'AccountController': {
      'create': 'isAuth',
      'find': true
      }
    }
    
    您需要在api/Policys中添加isAuth.js策略文件

  • 为了验证Sails中的用户,我使用(和其他许多人一样)passportjs。您将定义身份验证策略。它是一个功能强大的工具,允许您创建自定义身份验证策略,或者在需要时使用OAuth2协议(如果您使用令牌,您应该使用它)

  • Sails确实会截获每个请求并执行为路由操作配置的策略

    你可以在互联网上找到一些关于帆船、政策、护照、Oauth2的文档


    希望我能帮助您。

    我已经在这里为您创建了一个指南:

    值得注意的是,
    OAuth2
    的前首席开发人员建议不要使用它。