使用node-restify-oauth2-mongodb的问题

时间:2013-08-15 22:59:35

标签: node.js mongodb oauth restify

我想使用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."}

我再次感谢你在这里给我的任何方向。

1 个答案:

答案 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。

希望有所帮助!