我想使用Restify / Nodejs + Oauth2 + Mongodb来注册和验证用户......我在这里找到了一个很棒的git hub repo:
https://github.com/rgallagher27/node-restify-oauth2-mongodb
我安装了Redis和Mongo,并且我使用代码启动并运行节点,我可以注册用户。但是,我在验证用户时遇到了一些问题。说明中有一步我不确定我是否正确完成......
//////////////////////
**Insert a Client Key into the mongoDB wit the format:**
{
_id: ObjectId("51c6e846ede91c0b8600005e"),
clientName: "Test Client",
client: "test",
secret: "password"
}
//////////////////
这应该是一个mongo db,如
db.ClientKey.insert({_id: ObjectId("51c6e846ede91c0b8600005e"), clientName: "Test Client", client: "test", secret: "password"});
或者这是一个集合?
我试过两个都无济于事。
我相信我无法理解应该如何在mongoDB中创建它可能会导致我的问题无法验证用户
在mongodb中,我的restify_test数据库有一个“用户”集合......显示为
> db.users.find();
{
"name" : "Test",
"email" : "test@test.com",
"username" : "tester1",
"hashed_password" : "$2a$10$67rLfuKQqHIwHc2tOPNu.ejY.L/5Mk6XnuOdn0xc9UXUyzKBs6NQC",
"_id" : ObjectId("520d5874421b580000000001"),
"role" : "Admin",
"__v" : 0
}
>
但是当我尝试卷曲登录时
$ curl --user test:password --data grant_type=password --data username=tester1 --data password=testing27 http://[my-localhost]:8090/token
{"error":"invalid_client","error_description":"Client ID and secret did not validate."}
我再次感谢你在这里给我的任何方向。
答案 0 :(得分:1)
使用此insert语句时,我遇到的问题完全相同:
db.ClientKey.insert({_id: ObjectId("51c6e846ede91c0b8600005e"), clientName: "Test Client", client: "test", secret: "password"});
我注意到的是,如果我在mongo中执行显示集合,则一个集合称为用户,另一个集合称为 ClientKey 。经过一些试验和错误,我得知该集合需要调用 clientkeys (注意复数和小写)。您应该能够运行这些命令来解决问题(假设您正在从命令行工作):
mongo
use restify_test
db.ClientKey.renameCollection("clientkeys")
执行此操作后,正确执行curl命令会返回我的access_token和token_type。
希望有所帮助!