Submit Search
Upload
第5回鹿児島node.jsの会資料_内村
•
1 like
•
704 views
Koichi Uchimura
Follow
第5回鹿児島Node.jsの会のきわめて簡単な資料です。よろしくお願いします。
Read less
Read more
Software
Report
Share
Report
Share
1 of 18
Download now
Download to read offline
Recommended
第29回長岡開発者勉強会
第29回長岡開発者勉強会
Masaki Takeda
Windows2000におけるコンピュータ室環境の構築
Windows2000におけるコンピュータ室環境の構築
Tokai University
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
Kiyoshi Sawada
SSD+Squidで画像をキャッシュしなイカ?
SSD+Squidで画像をキャッシュしなイカ?
Kazutoshi Fujimoto
Hudson初心者向けデモ
Hudson初心者向けデモ
cactusman
Ddos
Ddos
Ryo Furuoto
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
GoAzure
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
Kiyoshi Sawada
Recommended
第29回長岡開発者勉強会
第29回長岡開発者勉強会
Masaki Takeda
Windows2000におけるコンピュータ室環境の構築
Windows2000におけるコンピュータ室環境の構築
Tokai University
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
Kiyoshi Sawada
SSD+Squidで画像をキャッシュしなイカ?
SSD+Squidで画像をキャッシュしなイカ?
Kazutoshi Fujimoto
Hudson初心者向けデモ
Hudson初心者向けデモ
cactusman
Ddos
Ddos
Ryo Furuoto
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
GoAzure
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
Kiyoshi Sawada
痛すぽ事業計画書
痛すぽ事業計画書
Koichi Uchimura
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
Koichi Uchimura
痛すぽ_プレゼン資料
痛すぽ_プレゼン資料
Koichi Uchimura
えあすぽ
えあすぽ
Koichi Uchimura
Innovación y emprendimiento Novarum 140922
Innovación y emprendimiento Novarum 140922
Novarum México
Final live project
Final live project
Khushbu Shah
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Stinnes-Entscheidung des BGH
Stinnes-Entscheidung des BGH
SpruchZ
第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村
Koichi Uchimura
第2回鹿児島node.jsの会資料_内村
第2回鹿児島node.jsの会資料_内村
Koichi Uchimura
第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村
Koichi Uchimura
Christmas 2013 with magazine.co.uk
Christmas 2013 with magazine.co.uk
JellyfishPublishing
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
Koichi Uchimura
What's new in digital marketing to improve your subscription marketing
What's new in digital marketing to improve your subscription marketing
JellyfishPublishing
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Big data wonderland
Big data wonderland
Sarah Daniels
第4回鹿児島node.jsの会資料_内村
第4回鹿児島node.jsの会資料_内村
Koichi Uchimura
Final live project
Final live project
Khushbu Shah
More Related Content
Viewers also liked
痛すぽ事業計画書
痛すぽ事業計画書
Koichi Uchimura
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
Koichi Uchimura
痛すぽ_プレゼン資料
痛すぽ_プレゼン資料
Koichi Uchimura
えあすぽ
えあすぽ
Koichi Uchimura
Innovación y emprendimiento Novarum 140922
Innovación y emprendimiento Novarum 140922
Novarum México
Final live project
Final live project
Khushbu Shah
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Stinnes-Entscheidung des BGH
Stinnes-Entscheidung des BGH
SpruchZ
第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村
Koichi Uchimura
第2回鹿児島node.jsの会資料_内村
第2回鹿児島node.jsの会資料_内村
Koichi Uchimura
第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村
Koichi Uchimura
Christmas 2013 with magazine.co.uk
Christmas 2013 with magazine.co.uk
JellyfishPublishing
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
Koichi Uchimura
What's new in digital marketing to improve your subscription marketing
What's new in digital marketing to improve your subscription marketing
JellyfishPublishing
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Big data wonderland
Big data wonderland
Sarah Daniels
第4回鹿児島node.jsの会資料_内村
第4回鹿児島node.jsの会資料_内村
Koichi Uchimura
Final live project
Final live project
Khushbu Shah
Viewers also liked
(18)
痛すぽ事業計画書
痛すぽ事業計画書
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
痛すぽ_プレゼン資料
痛すぽ_プレゼン資料
えあすぽ
えあすぽ
Innovación y emprendimiento Novarum 140922
Innovación y emprendimiento Novarum 140922
Final live project
Final live project
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Stinnes-Entscheidung des BGH
Stinnes-Entscheidung des BGH
第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村
第2回鹿児島node.jsの会資料_内村
第2回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村
Christmas 2013 with magazine.co.uk
Christmas 2013 with magazine.co.uk
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
What's new in digital marketing to improve your subscription marketing
What's new in digital marketing to improve your subscription marketing
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Big data wonderland
Big data wonderland
第4回鹿児島node.jsの会資料_内村
第4回鹿児島node.jsの会資料_内村
Final live project
Final live project
第5回鹿児島node.jsの会資料_内村
1.
第5回勉強会 Node.jsにおけるユーザ認証 ~クッキー&セッション方式~ 内村 康一
2.
今日の目次 第1章 クッキー・セッションとは?? 第2章 Node.jsでの実装~基本編~ 第3章 ログイン認証を作ってみよう
3.
第1章 第1章 クッキー・セッションとは??
4.
クッキー WEBブラウザを通じて訪問者のPCに一時的にデータを保存する 仕組み。利用者の識別に利用されることが多く、IDが保存される とクッキーが有効な間はアクセス可能になる。 セッション情報 クッキーがクライアント側に保存されるのに対し、セッション情報 はサーバ側に保存される。クライアントにセッションID(ランダム )を送り、その後はこのIDをやりとりすることで同一性を確認し、 接続を維持する。 第1章 クッキー・セッションとは??
5.
今回使用する方式 メールとパスワードでユーザ認証 認証できたらセッション開始 同時にユーザ名とパスワードを含む暗号化されたクッキーを送信 その後はクッキーに含まれるユーザ名とパスワードでセッションを維持
6.
第2章 第2章 Node.jsでの実装~基本編~
7.
はじめに モジュールのインストール npm install crypto npm
install validator npm install mysql npm install sequelize を実行する。(ejs,expressも)
8.
var randobet =
(省略) : ランダム文字列生成 var config = { cookie_secret: randobet(30) }; : セッションID生成 app.use(express.cookieParser()); : クッキーを使用するのに必須 app.use(express.session({ key: 'conn', : セッションキー secret: config.cookie_secret, : シークレットID cookie: { httpOnly: true }, : httpのみ許可 expires: false : ここでセッションの期限を設定可能 })); app.jsの解説1
9.
var sequelize =
new Sequelize('testdb', 'root', '●●●●', { : ●にはDBパスワ ードを入力 host: "localhost", : アドレスを入力 port: 3306 : 3306が標準ポート }); var Member = sequelize.define('member', { : DB設定 id : Sequelize.INTEGER, name : Sequelize.STRING, pass : Sequelize.STRING, mail : Sequelize.STRING }); app.jsの解説2
10.
第3章 ログイン認証を作ってみよう 第3章 ログイン認証を作ってみよう
11.
app.post('/reg', function(req, res){ var
user = {}; user.name = sanitize(req.body.name); : ユーザ名 user.pass = encrypt(sanitize(req.body.pass), 'hoge'); : パスワード(暗号化) var SourceCode = Member.build({ : Memberテーブルにビルド name : user.name, pass : user.pass, mail : sanitize(req.body.mail) : sanitizeで特殊文字をエスケープしている }); SourceCode.save().success(function (){ console.log('DB save success'); res.render('comp.ejs', {msg: "登録が完了しました。"}); : 登録完了 }) .error(function(){ res.render('error.ejs', {msg: "データの保存に失敗しました(データ保存エラー:7004) "}); }); }); 1.登録機能
12.
app.post('/login', function(req, res){ var
user = {}; user.mail = sanitize(req.body.mail); : メール user.pass = sanitize(encrypt(req.body.pass, 'hoge')); : パスワード(暗号化) if(user){ Member.find({ where: {'mail' : user.mail, 'pass' : user.pass}} ).success(function (data){ if(data && data != ""){ req.session.user = user; : セッション開始 gen_session(user,res); : クッキーを送付 res.redirect('/'); } else { res.render('error.ejs', {msg: "ログインに失敗しました(データ不在エラー :2001)"}); }; }) // 中略 }); 2.ログイン機能
13.
app.get('/', function(req, res){ var
cookies = {}; req.headers.cookie && req.headers.cookie.split(';').forEach(function( cookie ) { var parts = cookie.split('='); cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim(); : クッキーから認証情報取出し }); if(req.session.user && cookies.user){ : セッションが有効でクッキーが存在すれば var cook = decrypt(cookies.user, 'hoge'); : クッキーの暗号化を解除 var cook_arr = cook.split('t'); Member.find({ where: {'mail' : cook_arr[0], 'pass' : cook_arr[1]}} ).success(function (data){ : クッキーに含まれている認証情報が一致すれば if(data && data != ""){ res.render('member.ejs', {}); : メンバーページを描画 } else { res.render('error.ejs', {msg: "ログインに失敗しました"}); // 中略 }); 3.ログイン機能
14.
function gen_session(user,res) { var
auth_token = encrypt(user.mail +'t' + user.pass +'t','hoge'); : ユーザのメールとパスワードを暗号化したものを res.cookie('user',auth_token,{path:'/',maxAge: 1000*60*60*24*30}); : クッキーに乗せて送信 }; 4.モジュールの解説
15.
EJSファイル群は一般的なものなので、 jsdoitのhttp://jsdo.it/Koichi.Uchimura/td4z を参照してコピペするなりしてください。 5.EJSは・・・
16.
/regist で登録 /login でログイン トップページに「ログインしたよ。」と表示されれば 成功です。 6.動作すると
17.
次回は未定です。 どなたかネタを持ってきて下さると嬉しいです。 9月までにはもう一回したいですね。 次回予告
18.
ご清聴ありがとうございました。 ありがとうございました。
Download now