Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Koichi Uchimura
707 views
第5回鹿児島node.jsの会資料_内村
第5回鹿児島Node.jsの会のきわめて簡単な資料です。よろしくお願いします。
Software
◦
Related topics:
Node.js Development
•
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 18
2
/ 18
3
/ 18
4
/ 18
5
/ 18
6
/ 18
7
/ 18
8
/ 18
9
/ 18
10
/ 18
11
/ 18
12
/ 18
13
/ 18
14
/ 18
15
/ 18
16
/ 18
17
/ 18
18
/ 18
More Related Content
PDF
SSD+Squidで画像をキャッシュしなイカ?
by
Kazutoshi Fujimoto
PDF
Windows2000におけるコンピュータ室環境の構築
by
Tokai University
PPTX
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
by
Kiyoshi Sawada
PPTX
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
by
Kiyoshi Sawada
PDF
第29回長岡開発者勉強会
by
Masaki Takeda
PPTX
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
by
GoAzure
PPTX
Hudson初心者向けデモ
by
cactusman
PPTX
Ddos
by
Ryo Furuoto
SSD+Squidで画像をキャッシュしなイカ?
by
Kazutoshi Fujimoto
Windows2000におけるコンピュータ室環境の構築
by
Tokai University
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
by
Kiyoshi Sawada
EWD 3トレーニングコース#8 ewd-xpressメッセージ・サイクルの解剖
by
Kiyoshi Sawada
第29回長岡開発者勉強会
by
Masaki Takeda
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
by
GoAzure
Hudson初心者向けデモ
by
cactusman
Ddos
by
Ryo Furuoto
Viewers also liked
PDF
Stinnes-Entscheidung des BGH
by
SpruchZ
PDF
痛すぽ_プレゼン資料
by
Koichi Uchimura
PDF
Innovación y emprendimiento Novarum 140922
by
Novarum México
DOC
Final live project
by
Khushbu Shah
DOC
Final live project
by
Khushbu Shah
PDF
第4回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PDF
第6回鹿児島node.jsの会2資料_内村
by
Koichi Uchimura
PDF
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PPT
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PDF
第7回鹿児島Node.jsの会勉強会資料
by
Koichi Uchimura
PDF
第2回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PDF
第3回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PDF
第6回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PDF
痛すぽ事業計画書
by
Koichi Uchimura
PDF
Big data wonderland
by
Sarah Daniels
PDF
What's new in digital marketing to improve your subscription marketing
by
JellyfishPublishing
PDF
Christmas 2013 with magazine.co.uk
by
JellyfishPublishing
PDF
えあすぽ
by
Koichi Uchimura
Stinnes-Entscheidung des BGH
by
SpruchZ
痛すぽ_プレゼン資料
by
Koichi Uchimura
Innovación y emprendimiento Novarum 140922
by
Novarum México
Final live project
by
Khushbu Shah
Final live project
by
Khushbu Shah
第4回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
第6回鹿児島node.jsの会2資料_内村
by
Koichi Uchimura
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
第7回鹿児島Node.jsの会勉強会資料
by
Koichi Uchimura
第2回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
第3回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
第6回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
痛すぽ事業計画書
by
Koichi Uchimura
Big data wonderland
by
Sarah Daniels
What's new in digital marketing to improve your subscription marketing
by
JellyfishPublishing
Christmas 2013 with magazine.co.uk
by
JellyfishPublishing
えあすぽ
by
Koichi Uchimura
第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