どのように構造のノード、エクスプレスに接続し-Authとバ用のサーバーサイド?

StackOverflow https://stackoverflow.com/questions/7814794

質問

私はクライアント側のんぐり抜けて、世界のサーバサイドjavascriptです。私にはこの考え方をしていきたいと考えていますの構築私の最初のNodejsます。したいサーバー側のそれにしか果たしていない空の殻のJSON.思い入れの論理を創出します。js-装備のフロントです。

私は早いホイップアップ小型アプリケーション(コードの下)、もう少し質問をします。

  1. セッション変数には安全ですか?利用できるセッション変数を格納するユーザーの識別子をその後に読み込みを取得す敏感です。この変更セッション変数のように、私の場合、ユーザーが手に他のユーザーのデータはもらえますか?

  2. ることに意味がなJSONになっているので自分の'/プロフィール'。私の応募があります多くの路線ということです。ルーフェッチからのデータベースとしてとしてJSONするサービスです。

  3. 私はコードというモチベーションがしった技?いことをなすべきでは異なります。モジュールしょきいのですが。

  4. は私のアイデアとなることを指していることJSONのみバックエンドなのです。

アダプタのご使用下さい。

var facebook = {
    'appId'         : "my app id",
    'appSecret'     : "my app secret",
    'scope'         : "email",
    'callback'      : "http://localhost:2000/"
}

var express         = require('express');
var MongoStore      = require('connect-mongo');
var auth            = require('connect-auth')
var UserProvider    = require('./providers/user').UserProvider;
var app             = module.exports = express.createServer();

// Configuration
app.configure(function(){
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.cookieParser());
    app.use(auth([auth.Facebook(facebook)]));
    app.use(express.session({secret: 'my secret',store: new MongoStore({db: 'app'})}));
    app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
    app.use(app.router);
    app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
});

app.configure('production', function(){
    app.use(express.errorHandler()); 
});


// Providers
var UserProvider = new UserProvider('localhost', 27017);

// Routes
app.get('/', function( request, response ) {

    if( !request.session.userId ) {
        request.authenticate(['facebook'], function(error, authenticated) {
            if( authenticated ) {
                request.session.userId = request.getAuthDetails().user.id;
            }
        });
    }

    response.render( 'index.jade' );

});

app.get('/profile', function( request, response ) {

    response.contentType('application/json');
    if( request.session.userId ){
        UserProvider.findById( request.session.userId, function( error, user ){
            var userJSON = JSON.stringify( user );
            response.send( userJSON );
        });
    } else {
        response.writeHead(303, { 'Location': "/" });
    }

});

app.get('/logout', function( request, response, params ) {

    request.session.destroy();
    request.logout();
    response.writeHead(303, { 'Location': "/" });
    response.end('');

});

app.listen(2000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
役に立ちましたか?

解決

やろうと思い立ったら、そのときは右のアイデアが私を捨てカップルでの思考:

  • 定義路 が定義する多くの路線は、JSON ールする必要がありますを定義し、動的に通MVCタイプ。できの良い例になること のサンプルこちら.で、多くの手書きのルートまたノードのク、クライアントとしてJSONに合わず、その他の多くのもの、サーバ側です。
  • 基幹サーバー -に行きたい場合は少し乱れやっていないのに使用しこの技 種子の開発 を築いている枠組みとして その 利用の基幹サーバ側では.
  • ログイン例 -はありま 良いチュートリアルでDailyJS に関するユーザーセッション管理。
  • アクセス どんなアクセス、データ提供によるREST APIは意味がある。ご心配508コンプライアンス違反やその他のjavascriptの制限すものです。

としてのセキュリティの設定セッションタイムアウトの下の値を選択適切な秘密鍵でしょう成長に向けて必ず誰かにできない生セッションクッキー(デフォルトでは、実際のデータなに保管される。お使いいただくことによってアルゴリズムnode.js 使用生セッションクッキー。ここでは詳細に エセッションミドルウェア.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top