2017-05-13 12 views
1

私はノードjs &に新しいです。私はログインを処理する以下のコードを持っています。私は顧客テーブルを持つMYSQLデータベースを持っています。顧客がユーザー名とパスワードを入力すると、データベースに存在するかどうかがチェックされます。この部分は機能しています。ユーザーセッションを作成する - NODE js

この機能を拡張して、ユーザー名を取得し、セッション変数を作成し、アプリケーション全体で使用できるようにしたいと考えています。私はJSに新しく、組み込み施設がすでに存在するか、セッションについてのベストプラクティスがまだ不明です。

このセッション変数は、アプリケーション全体で使用することができ、その後のログアウト機能に使用したいと考えています。

誰かがこれについて私に助言したり、正しい方向に向けることができますか?ありがとう。

ケース "/ログイン":

var body = ''; 

console.log("user Login "); 

request.on('data', function (data) { 
    body += data; 
}); 

request.on('end', function() { 
    var obj = JSON.parse(body); 
    console.log(JSON.stringify(obj, null, 2)); 
    var query = "SELECT * FROM Customer where name='"+obj.name+"'"; 
    response.writeHead(200, { 
     'Access-Control-Allow-Origin': '*' 
    }); 

    db.query(
     query, 
     [], 
     function(err, rows) { 
      if (err) { 
       response.end('{"error": "1"}'); 
       throw err; 
      } 
      if (rows!=null && rows.length>0) { 
       console.log(" user in database"); 
       theuserid = rows[0].customerID; 
       var obj = { 
        id: theuserid 
       } 
       response.end(JSON.stringify(obj)); 

      } 
      else{ 
       response.end('{"error": "1"}'); 
       console.log(" user not in database"); 
      } 

     } 
    ); 
}); 

}

答えて

1

ユーザーセッションを実装する複数の方法が存在する場合があります。

1つは、ブラウザのクッキーを使うことができます。多くの長所と短所があります。その管理方法を少し見てみるべきです。これは、使用しているサーバー(express、hapiなど)によっても異なります。

2つは、バックエンドでJWTトークンを設定し、それを応答のヘッダーに含めることができます。次に、アプリケーション状態またはブラウザのローカルストレージを使用して、UIにそのトークンを保存できます。認証を必要とするそのようなフォローアップ要求には、この認証トークンを検証のヘッダーとして含める必要があります。

関連性の高いライブラリ(パスポートなど)を調べると、この作業が非常に簡単になります。

PS:クッキーを選択する場合は、エンドユーザーが常に追跡されたくないため、ビジネスが許可するかどうかを確認してください。 :)

関連する問題