2017-03-01 2 views
0

私はmongodbにアプリケーションのスキーマを書いています。通常、asp.netでSqlを使用すると、各ロールにページ/ UIを割り当てています。ロールには、ページにアクセスするためのアクセス権(表示/編集)があるかどうかを示します。アプリケーションへのロールのログイン時に、そのロールに割り当てられたページでのみ表示/編集できます。割り当てられていないページはそのロールには表示されません。MEANスタックWebアプリケーションでページを認証する方法を教えてください。

私は、pre_initイベントでコードを記述してロールを制限しています。平均スタックアプリケーションでは、mongoDBを使って同じことを試みています。

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema;  


var rolesSchema = new Schema({ 
    role: { name: String }, 
    accessPage: { pagename: String, view: true, Edit: true } 
}); 


var roles= mongoose.model('roles', rolesSchema); 

私はMEANスタックを初めて使いました。私たちはMEANスタックWebアプリケーションで認可関連のものをどのように達成できるのですか?

答えて

1

あなたが望むのは、ユーザーの役割に基づいてauthorizationのレベルです。あなたは​​を見てください。​​を使用すると、承認を処理できるようになり、ノードmiddlewaresを使用して、ユーザーの役割に基づく認可を処理できます。

req.userにユーザーの役割を格納してください。これはあなたが役割に基づいて承認を処理する方法についていくつかのアイデアを得ることができます希望

router.post('/someRoute', isAdmin, function (req,res,next){ 
    //Handle your route here 
}); 

あなたのノードのルートでそれを使用し

var isAdmin = function (req,res,next){ 
     if(req.user && req.user.role==='Admin') 
      next(); 
    else{ 
     return; 
    } 
} 

:もっと

req.userについてサンプル・ミドルウェアを知って passport documentationをお読みください。

+0

オープンソースです –

+0

はい、オープンソースです。使用してみてください。それはあなたの目的に役立ちます。そのウェブサイトpassportjs.orgに行き、読んでください。 –

0

それを行うための最も簡単な方法は、パスポートと次のようになります。

パスポートはNode.js.の認証ミドルウェアです非常に柔軟でモジュラーなパスポートは、ExpressベースのWebアプリケーションに邪魔にならないようにすることができます。包括的な戦略は、ユーザー名とパスワード、Facebook、Twitterなどを使用した認証をサポートします。

MEANスタックでは、Passportのような接続スタイルのミドルウェアをサポートするExpressを使用しています。

+0

オープンソースですか? –

関連する問題