2011-11-08 6 views
38

私はnode.jsを初めて使用しており、user.alsoの登録とログインページを作成したいと思っています。ユーザーの適切な権限が必要です。内部でmongodbデータベースを作成することができます。私はこれを達成することができます。誰かが私にnode.jsとmongodbで始めることができるように、私にコードを提供してください。node.jsとmongodbに登録とログインフォームを作成

+0

これまでに試したことはありますか? – beny23

答えて

42

いくつかの異なる認証方式(パスワード、FacebookやTwitterなど)を使用してログインを行うための標準的な簡単な方法を提供しますNodepad application by Alex Youngでやろうとしています。あなたはこれらの2です見とるべき2重要なファイル:私は、彼はまた、explains the code on the dailyjs site考える

User = new Schema({ 
    'email': { type: String, validate: [validatePresenceOf, 'an email is required'], index: { unique: true } }, 
    'hashed_password': String, 
    'salt': String 
    }); 

    User.virtual('id') 
    .get(function() { 
     return this._id.toHexString(); 
    }); 

    User.virtual('password') 
    .set(function(password) { 
     this._password = password; 
     this.salt = this.makeSalt(); 
     this.hashed_password = this.encryptPassword(password); 
    }) 
    .get(function() { return this._password; }); 

    User.method('authenticate', function(plainText) { 
    return this.encryptPassword(plainText) === this.hashed_password; 
    }); 

    User.method('makeSalt', function() { 
    return Math.round((new Date().valueOf() * Math.random())) + ''; 
    }); 

    User.method('encryptPassword', function(password) { 
    return crypto.createHmac('sha1', this.salt).update(password).digest('hex'); 
    }); 

    User.pre('save', function(next) { 
    if (!validatePresenceOf(this.password)) { 
     next(new Error('Invalid password')); 
    } else { 
     next(); 
    } 
    }); 



https://github.com/alexyoung/nodepad/blob/master/models.js
https://github.com/alexyoung/nodepad/blob/master/app.js

は、モデルの一部を次のようになり。

+0

Alexのチュートリアルは、私が必要としていたものです。 – mwilcox

+3

http://dailyjs.com/2010/12/06/node-tutorial-5/こちらは認証用のページです。 –

10

簡単な方法を見てみましょうExpressJS + MongooseJS + MongooseAuth。特に

は、その最後のプラグインは、あなたがしているものの完全なサンプルを見つけることができます

+0

私はデータベース(mongodb)内にログインの詳細を保存し、後で詳細を取得し、特定のユーザーがデータベースに存在するかどうかを確認する方法があります。はいの場合、ユーザーはログインして別のページにリダイレクトされます。誰も私に参照のコードを提供することはできません –

+1

@DarHamid Mongoose-authは、登録後のパスワード、フェイスブック、twitterなどからユーザー情報を自動的にmongodbに保存します。それをクローンして、その例を実行してください。詳細については、Readme.mdを参照してください。 – k00k

+1

2年後に悲しいことに、MongooseAuthがうまく維持されておらず、代わりにPassportJSを使用することが注目されています。 – Petrogad

21

私はexactly this.のアカウント作成、メール検索、セッション、ローカルクッキーをサポートしており、返信時にユーザーを覚えておくためのローカルクッキーと、bcyrptによるパスワード暗号化をサポートしています。

There's also a detailed explanation of the project's architecture on my blog.

+0

デモは良いですが、コードは非常にやさしい方法で書かれています:/ – tUrG0n

+3

私は同意しません。彼が2012年6月13日以降に変更していない限り、私はコードがうまく構成されていると思うし、何が起こっているかをすぐに知ることができます。チェックアウトする価値がある。 –

+0

これは私のための大きな定型会でした。私はあなたのニーズに合うように(必要に応じて)それを間違いなく修正しました。私はパスポートとこのアプローチを統合することについて議論しています。私はMongoDBを扱うためにMongooseに切り替える予定ですが、まだ手に入れられていません。いずれにせよ、これは良い参考プロジェクトです。 – BRogers

関連する問題