如何在composer rest服务器中使用passport-local进行身份验证

时间:2017-09-14 10:43:57

标签: hyperledger-composer

我想使用passport-local来验证用户是否像其他护照策略一样登录到作曲家休息服务器(例如passport-githubpassport-google)。

首先,我尝试像这样设置COMPOSER_PROVIDER变量

"local": {
    "provider": "local",
    "module": "passport-local",
    "usernameField": "username",
    "passwordField": "password",
    "authPath": "/auth/local",
    "successRedirect": "/",
    "failureRedirect": "/"}

然后我在docker中运行服务器(使用mongo作为持久化数据源)并在数据库集合中添加一些用户

问题是我需要使用此护照的下一步是什么。因为我运行此命令仍然得到401 Unauthorized

的响应
  

卷曲-H"内容类型:application / json" -X POST -d   ' {"用户名":" {USER_NAME}""密码":" {USER_PASSWORD}"}&#39 ;   http://localhost:3000/auth/local

使用这本护照还不够吗?我是否需要启动另一项服务来本地验证此登录(例如GitHub oAuth应用程序)?

2 个答案:

答案 0 :(得分:0)

可以根据您的要求基于环回框架自定义composer-rest-server。

我建议您从官方文档中阅读本教程。

https://hyperledger.github.io/composer/latest/integrating/customizing-the-rest-server

答案 1 :(得分:-1)

我最初也想这样做,但是我只是编辑了作曲家休息服务器上的server.js文件,以便最后获得基本身份验证。

  1. 检查存储composer-rest-server的位置
  2.   

    npm root -g

    1. 打开server.js所在的位置
    2. cd /home/ubuntu/.nvm/versions/node/v8.10.0/lib/node_modules/composer-rest-server/server
      
      1. 将其添加到代码
      2. const basicauth = require('basicauth-middleware');
        app.use(basicauth('username', 'password!');