为Hyperledger-Composer-Rest服务器实施本地Passport策略:“无法获取/授权/本地”,“状态”:404

问题描述 投票:2回答:1

我正在尝试为Hyperledger Composer Rest Server实施本地Passport策略。

为此,我做了以下事情:

首先,我通过运行以下命令安装了本地护照:

npm install -g passport-local

在我的主文件夹中,我创建了一个名为“envvars.txt”的文件,其中包含以下内容:

COMPOSER_PROVIDERS='{

    "local": { 
            "provider": "local", 
            "module": "passport-local", 
            "usernameField": "username", 
            "passwordField": "password", 
            "authPath": "/auth/local", 
            "callbackURL":"/auth/local/callback",
            "successRedirect": "/", 
            "failureRedirect": "/", 
            "setAccessToken": true, 
            "callbackHTTPMethod": "post" 
    }

}'

然后,为了设置环境变量COMPOSER PROVIDERS,我运行了以下命令:

source envvars.txt

之后,我使用以下规范启动了composer-rest-server:

enter image description here

当我去localhost:3000 / explorer时,http请求被阻止(正如预期的那样),因为我没有通过身份验证。

到现在为止还挺好。

但是当我试图去寻址localhost:3000 / auth / local(为了进行身份验证)时,这是不可能的...... Web浏览器给了我一条错误消息,其开头如下:

{"error":{"statusCode":404,"name":"Error","message":"Cannot GET /auth/local","status":404,"stack":"Error: Cannot GET /auth/local\n    at raiseUrlNotFoundError

这里出了什么问题?

任何帮助将非常感激。

authentication hyperledger-composer passport-local
1个回答
0
投票

我认为你的问题是你没有持久化数据。在envvars.txt中,您需要指定保存数据的位置,因为现在没有用于存储用户和密码的数据库。

就像在official docs中解释的那样,你需要在MongoDB中保存你的数据。

© www.soinside.com 2019 - 2024. All rights reserved.