0

Restify/Nodejs + Oauth2 + Mongodb を使用してユーザーを登録および認証したいと考えています...ここで素晴らしい git ハブ リポジトリを見つけました:

https://github.com/rgallagher27/node-restify-oauth2-mongodb

Redis と Mongo の両方をインストールし、ノードを起動してコードで実行し、ユーザーを登録できます。ただし、ユーザーの検証にはいくつか問題があります。手順の中に、正しく完了しているかどうかわからないステップが 1 つあります。

//////////////////////
**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."}

繰り返しますが、ここで私に与えることができる指示に感謝します。

4

1 に答える 1

1

この挿入ステートメントを使用すると、あなたとまったく同じ問題が発生しました。

db.ClientKey.insert({_id: ObjectId("51c6e846ede91c0b8600005e"), clientName: "Test Client", client: "test",  secret: "password"});

私が気づいたことは、mongo でコレクションを表示した場合、1 つのコレクションはusersと呼ばれ、もう 1 つのコレクションはClientKeyであるということでした。いくつかの試行錯誤の結果、コレクションがclientkeysを呼び出す必要があることがわかりました (複数形と小文字に注意してください)。これらのコマンドを実行して問題を解決できるはずです (コマンド ラインから作業している場合)。

mongo
use restify_test
db.ClientKey.renameCollection("clientkeys")

これを行うと、curl コマンドを実行すると、access_token と token_type が正しく返されました。

それが役立つことを願っています!

于 2013-10-05T07:06:46.720 に答える