我正在尝试为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:
当我去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
这里出了什么问题?
任何帮助将非常感激。
我认为你的问题是你没有持久化数据。在envvars.txt
中,您需要指定保存数据的位置,因为现在没有用于存储用户和密码的数据库。
就像在official docs中解释的那样,你需要在MongoDB中保存你的数据。