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
Takenori Nakagawa
525 views
後期02
北海道科学大学電子計算機研究部ネットワークチーム講座資料
Technology
◦
Related topics:
Node.js Development
•
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 45
2
/ 45
3
/ 45
4
/ 45
5
/ 45
6
/ 45
7
/ 45
8
/ 45
9
/ 45
10
/ 45
11
/ 45
12
/ 45
13
/ 45
14
/ 45
15
/ 45
16
/ 45
17
/ 45
18
/ 45
19
/ 45
20
/ 45
21
/ 45
22
/ 45
23
/ 45
24
/ 45
25
/ 45
26
/ 45
27
/ 45
28
/ 45
29
/ 45
30
/ 45
31
/ 45
32
/ 45
33
/ 45
34
/ 45
35
/ 45
36
/ 45
37
/ 45
38
/ 45
39
/ 45
40
/ 45
41
/ 45
42
/ 45
43
/ 45
44
/ 45
45
/ 45
More Related Content
PDF
5分でわかったつもりになるParse.com
by
Kenta Tsuji
PDF
環境構築から始めるDjangoチュートリアル
by
sakihohoribe
PPTX
Djangoのチュートリアル
by
sakihohoribe
PDF
WordPress と Bootstrap
by
株式会社ガリレオ(開発グループ)
PDF
実はとれました。System xhrでcsv形式のopen dataを取得する
by
Masakazu Muraoka
PDF
Flask勉強会その1
by
Masato Kawamura
PPTX
HTML5最新動向
by
Shumpei Shiraishi
PDF
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
by
hirokiky
5分でわかったつもりになるParse.com
by
Kenta Tsuji
環境構築から始めるDjangoチュートリアル
by
sakihohoribe
Djangoのチュートリアル
by
sakihohoribe
WordPress と Bootstrap
by
株式会社ガリレオ(開発グループ)
実はとれました。System xhrでcsv形式のopen dataを取得する
by
Masakazu Muraoka
Flask勉強会その1
by
Masato Kawamura
HTML5最新動向
by
Shumpei Shiraishi
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
by
hirokiky
What's hot
PDF
Twitter連携chrome extension作り方
by
Hiroshi Oyamada
PPTX
PowerShell 小技集
by
sakuragi yuuto
PDF
Using SockJS(Websocket) with Sencha Ext JS
by
Kazuhiro Kotsutsumi
PPTX
HTML5&API総まくり
by
Shumpei Shiraishi
PDF
Do not use document.write
by
Haruki Okada
PPTX
かんたん Twitter アプリをつくろう
by
Shuhei Iitsuka
PDF
Webサーバのチューニング
by
Yu Komiya
PDF
What's new! TwentyThirteen + WordPress3.6
by
Takashi Uemura
PDF
Windows スクリプトセミナー WMI編 VBScript&WMI
by
junichi anno
PDF
後期03
by
Takenori Nakagawa
PPTX
Nodejs
by
Masanobu Masuda
PPTX
後期講座03
by
Takenori Nakagawa
PDF
Htaccessで困る
by
denet1999
PDF
Djangoフレームワークのユーザーモデルと認証
by
Shinya Okano
PPTX
メタプログラミングRuby勉強会#7(fluentプラグイン)
by
Ashitaba YOSHIOKA
PDF
Chrome Apps のデバイスAPI
by
yoshikawa_t
PPTX
20081003
by
小野 修司
PDF
Webサーバ勉強会03
by
oranie Narut
PDF
node+socket.io+enchant.jsでチャットゲーを作る
by
Kiyoshi SATOH
PDF
Djangoフレームワークの紹介
by
Shinya Okano
Twitter連携chrome extension作り方
by
Hiroshi Oyamada
PowerShell 小技集
by
sakuragi yuuto
Using SockJS(Websocket) with Sencha Ext JS
by
Kazuhiro Kotsutsumi
HTML5&API総まくり
by
Shumpei Shiraishi
Do not use document.write
by
Haruki Okada
かんたん Twitter アプリをつくろう
by
Shuhei Iitsuka
Webサーバのチューニング
by
Yu Komiya
What's new! TwentyThirteen + WordPress3.6
by
Takashi Uemura
Windows スクリプトセミナー WMI編 VBScript&WMI
by
junichi anno
後期03
by
Takenori Nakagawa
Nodejs
by
Masanobu Masuda
後期講座03
by
Takenori Nakagawa
Htaccessで困る
by
denet1999
Djangoフレームワークのユーザーモデルと認証
by
Shinya Okano
メタプログラミングRuby勉強会#7(fluentプラグイン)
by
Ashitaba YOSHIOKA
Chrome Apps のデバイスAPI
by
yoshikawa_t
20081003
by
小野 修司
Webサーバ勉強会03
by
oranie Narut
node+socket.io+enchant.jsでチャットゲーを作る
by
Kiyoshi SATOH
Djangoフレームワークの紹介
by
Shinya Okano
Viewers also liked
PPTX
前期講座04
by
Takenori Nakagawa
PPTX
後期講座08
by
Takenori Nakagawa
PPTX
前期講座07
by
Takenori Nakagawa
PPTX
Illust bookmark
by
Takenori Nakagawa
PDF
後期05
by
Takenori Nakagawa
PPTX
前期講座08
by
Takenori Nakagawa
PDF
Git 初心者のための GitHub Pages
by
Takenori Nakagawa
PPTX
前期講座06
by
Takenori Nakagawa
PPTX
group presentation katrina cortez (final revision)
by
Kc Cortez
PPTX
後期講座07
by
Takenori Nakagawa
PPTX
後期講座01
by
Takenori Nakagawa
PPTX
前期講座03
by
Takenori Nakagawa
PDF
OpenIL vol.1
by
Takenori Nakagawa
PDF
2013 04-29 american art collaborative lod meeting - washington dc - web
by
lecmaj
PPTX
後期講座05
by
Takenori Nakagawa
PDF
pixiv SUMMER BOOT CAMP 2013
by
Takenori Nakagawa
PDF
Docker で Deep Learning
by
Takenori Nakagawa
前期講座04
by
Takenori Nakagawa
後期講座08
by
Takenori Nakagawa
前期講座07
by
Takenori Nakagawa
Illust bookmark
by
Takenori Nakagawa
後期05
by
Takenori Nakagawa
前期講座08
by
Takenori Nakagawa
Git 初心者のための GitHub Pages
by
Takenori Nakagawa
前期講座06
by
Takenori Nakagawa
group presentation katrina cortez (final revision)
by
Kc Cortez
後期講座07
by
Takenori Nakagawa
後期講座01
by
Takenori Nakagawa
前期講座03
by
Takenori Nakagawa
OpenIL vol.1
by
Takenori Nakagawa
2013 04-29 american art collaborative lod meeting - washington dc - web
by
lecmaj
後期講座05
by
Takenori Nakagawa
pixiv SUMMER BOOT CAMP 2013
by
Takenori Nakagawa
Docker で Deep Learning
by
Takenori Nakagawa
Similar to 後期02
PDF
densan2014-late01
by
Takenori Nakagawa
PDF
Nodejsによるapiサーバ構築事例
by
Hidetoshi Mori
PDF
大阪Node学園八時限目 「expressで作るWebアプリ」
by
Shunsuke Watanabe
PPT
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
PDF
実践 NestJS
by
Ayumi Goto
PDF
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
PDF
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
by
Naoya Ito
PDF
後期第二回ネットワークチーム講座資料
by
densan_teacher
PPTX
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
by
Kiyoshi Sawada
PPTX
オタク×Node.js勉強会
by
虎の穴 開発室
PPTX
Develop Web Application with Node.js + Express
by
Akinari Tsugo
PDF
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
by
Yusaku Kinoshita
PDF
GitHub APIとfreshで遊ぼう
by
虎の穴 開発室
PPTX
13016 n分で作るtype scriptでnodejs
by
Takayoshi Tanaka
PDF
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
PPTX
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
by
Kiyoshi Sawada
PPT
Node.js で Web アプリ開発
by
Tatsumi Naganuma
PDF
Nodeにしましょう
by
Yuzo Hebishima
PDF
東京Node学園#3 Domains & Isolates
by
koichik
PPTX
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
by
CODE BLUE
densan2014-late01
by
Takenori Nakagawa
Nodejsによるapiサーバ構築事例
by
Hidetoshi Mori
大阪Node学園八時限目 「expressで作るWebアプリ」
by
Shunsuke Watanabe
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
実践 NestJS
by
Ayumi Goto
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
by
Naoya Ito
後期第二回ネットワークチーム講座資料
by
densan_teacher
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
by
Kiyoshi Sawada
オタク×Node.js勉強会
by
虎の穴 開発室
Develop Web Application with Node.js + Express
by
Akinari Tsugo
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
by
Yusaku Kinoshita
GitHub APIとfreshで遊ぼう
by
虎の穴 開発室
13016 n分で作るtype scriptでnodejs
by
Takayoshi Tanaka
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
by
Kiyoshi Sawada
Node.js で Web アプリ開発
by
Tatsumi Naganuma
Nodeにしましょう
by
Yuzo Hebishima
東京Node学園#3 Domains & Isolates
by
koichik
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
by
CODE BLUE
More from Takenori Nakagawa
PDF
TensorFlow 入門
by
Takenori Nakagawa
PDF
機械学習を用いたパターンロック認証の強化手法
by
Takenori Nakagawa
PDF
GitHub Travis-CI Go!
by
Takenori Nakagawa
PDF
01.app
by
Takenori Nakagawa
PDF
Service Workers Push API Hands-on
by
Takenori Nakagawa
PDF
Service Workers
by
Takenori Nakagawa
PDF
OpenGL 3DCG
by
Takenori Nakagawa
PDF
WebGL
by
Takenori Nakagawa
PDF
01:artificial life
by
Takenori Nakagawa
PDF
phpck
by
Takenori Nakagawa
PPTX
前期講座09
by
Takenori Nakagawa
PPTX
前期講座05
by
Takenori Nakagawa
TensorFlow 入門
by
Takenori Nakagawa
機械学習を用いたパターンロック認証の強化手法
by
Takenori Nakagawa
GitHub Travis-CI Go!
by
Takenori Nakagawa
01.app
by
Takenori Nakagawa
Service Workers Push API Hands-on
by
Takenori Nakagawa
Service Workers
by
Takenori Nakagawa
OpenGL 3DCG
by
Takenori Nakagawa
WebGL
by
Takenori Nakagawa
01:artificial life
by
Takenori Nakagawa
phpck
by
Takenori Nakagawa
前期講座09
by
Takenori Nakagawa
前期講座05
by
Takenori Nakagawa
Recently uploaded
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PDF
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
後期02
1.
電算部ネットワーク講座 Ⅱ Node.js
で Web アプリケーション開発
2.
前回のおさらい • テンプレートエンジン
Hogan.js で HTML の 自動生成。 • Express で HTTP Header の取得、設定
3.
Hogan.js
4.
テンプレート views/template.html <!DOCTYPE
html> <html> <head> <meta charset="utf-8"> <title>{{title}}</title> </head> <body> <h1>{{title}}</h1> <ul> {{#list}} <li>{{.}}</li> {{/list}} </ul> </body> </html> 繰り返し 変数展開
5.
HTML の生成 server.js
var express = require("express"); var hogan = require("hogan-express"); var path = require("path"); ! var app = express(); ! // ビューの設定 app.set("views", path.join(__dirname, "views")); app.set("view engine", "html"); app.engine("html", hogan); ! app.get("/", function(req, res){ // HTML のレンダリング (生成) res.render("template", { title: "template example", list: ["node.js", "express", "hogan"] }); }); ! app.listen(3000); View データ
6.
毎回スライドに server.js 全体を書くのは冗長なので
7.
HTML の生成 server.js
(ルートの一部) app.get("/", function(req, res){ // HTML のレンダリング (生成) res.render("template", { title: "template example", list: ["node.js", "express", "hogan"] }); });
8.
このように、今後はルートの 一部だけを抜粋して表記する
9.
コマンドプロンプト (cmd.exe) で実行
必要なモジュールのインストール > npm install express hogan-express ! サーバの起動 > node server.js ! ! 停止する時は Ctrl + C を入力。 コードの修正を反映させるためには、毎回起動し直す。
10.
実行結果
11.
HTTP Header
12.
Header の取得と設定 server.js
(ルートの一部) app.get("/header", function(req, res){ // User-Agent の取得 var ua = req.headers["user-agent"]; // X-Powered-By の設定 res.set("X-Powered-By", "densan"); ! // レスポンスの送信 res.send("User-Agent: " + ua); });
13.
HTTP Header •
User-Agent: クライアントのアプリケーション を情報が含まれている。 PC/スマホの判定に使われる。 • X-Powered-By: サーバのアプリケーション情 報が含まれている事がある。 PHP/5.4.22 など。
14.
復習おわり
15.
今回の内容 • Google
アカウント認証
16.
Google アカウント認証 Google
アカウントを用いて本人確認をする 認証方法。 技術的には OAuth/OpenID が用いられて いる。
17.
OAuth/OpenID OAuth はサードパーティ製アプリケーションに
パスワードを教えること無く、サービスのリソー スを提供する仕組み。 ! ※サービスのリソース:カレンダーに登録されて いる予定、メール、連絡先などのユーザがサー ビスに登録しているデータ。
18.
OAuth/OpenID OpenID はサードパーティ製アプリケーショ
ンに第三者を通して身元を証明するための仕 組み。主にログインに使われる。 ! ※第三者:Google など
19.
Passport.js
20.
Passport.js Node.js で
OAuth や OpenID を簡単に扱う ためのライブラリ。 Google, Twitter, Facebook などに対応して いる。 ! http://passportjs.org/
21.
依存関係が増えてくると、何の モジュールに依存していたか 把握しきれなくなってくる
22.
package.json を使う
23.
npm init 対話的に答えていくと、最後に
package.json が生成される。 > npm init ! (中略) ! name: (demo) ! version: (1.0.0) description: entry point: (server.js) test command: git repository: keywords: author: license: (ISC) About to write to C:Usersww24Desktopdemopackage.json: ! (中略) ! Is this ok? (yes)
24.
package.json { "name":
"demo", "version": "1.0.0", "description": "", "main": "server.js", "dependencies": { } 既に依存している "hogan-express": "^0.5.2", "express": "^4.9.5" }, "devDependencies": {}, "scripts": { "test": "echo "Error: no test specified" && exit 1", "start": "node server.js" }, "author": "", "license": "ISC" } モジュールが列挙される
25.
package.json 導入後の npm
install
26.
npm install --save
> npm install --save passport passport-google ! このように --save というオプションを付けると package.json に追記されます。 ! > npm i --save passport passport-google ! ※ install は i と略記できます。
27.
package.json { "name":
"demo", "version": "1.0.0", "description": "", "main": "server.js", "dependencies": { "express": "^4.9.5", "hogan-express": "^0.5.2", "passport": "^0.2.1", "passport-google": "^0.3.0" }, "devDependencies": {}, "scripts": { "test": "echo "Error: no test specified" && exit 1", "start": "node server.js" }, "author": "", "license": "ISC" } }モジュールが追加された
28.
session
29.
session Web アプリケーションに於いて、
同一のユーザを判別する仕組み。 ! ログイン状態の保持に利用され、 技術的には Cookie などを用いる。
30.
もし session が無いと
毎回リクエスト毎 (ページが変わる度) に、 ・ログイン情報 (ID, Password) ・入力途中のデータ をサーバに送信しなければならない。
31.
非常に不便
32.
express-session > npm
i --save express-session ! Express で session を扱うモジュールを導入する。
33.
本題 Google アカウント認証
34.
Express + Passport
フレームワークの Express と OAuth/OpenID の ライブラリ Passport を組み合わせると、 簡単に Google/Twitter/Facebook の認証が実装 できる。 ! http://passportjs.org/guide/google/
35.
Express + Passport
server.js (ファイルの先頭に記述) var session = require("express-session"); var passport = require("passport"); var GoogleStrategy = require("passport-google").Strategy; ! passport.use(new GoogleStrategy({ returnURL: "http://localhost:3000/auth/callback", realm: "http://localhost:3000/" }, function (id, profile, done) { console.log("id:", id); console.log("profile:", profile); ! profile.id = id; ! done(null, profile); }));
36.
Express + Passport
server.js (前スライドの続き) var users = {}; ! passport.serializeUser(function (user, done) { users[user.id] = user; done(null, user.id); }); ! passport.deserializeUser(function (id, done) { var user = users[id]; ! if (user) { done(null, user); } else { done("user is not exists"); } });
37.
Express + Passport
server.js (app = express() の次の行に記述) // session settings app.use(session({ name: "sess-id", cookie: { path: "/", httpOnly: true, maxAge: null }, secret: "secret" })); ! // passport middleware app.use(passport.initialize()); app.use(passport.session());
38.
Express + Passport
server.js (ルートの一部) // 認証ページ app.get("/auth", passport.authenticate("google")); ! // 認証コールバックページ app.get("/auth/callback", passport.authenticate("google", { successRedirect: "/auth/success", failureRedirect: "/auth/fail" }));
39.
Express + Passport
server.js (ルートの一部) // 認証成功ページ app.get("/auth/success", function (req, res) { res.send("認証に成功しました。"); }); ! // 認証失敗ページ app.get("/auth/success", function (req, res) { res.send("認証に失敗しました。"); });
40.
起動して http://localhost:3000/auth をブラウザで開く
44.
余裕があれば Hogan.js で
美しい HTML を出力しよう
45.
終わり
Download