SlideShare a Scribd company logo
1 of 36
Download to read offline
Sails WorkShop (2)
立命館大学 経営学部3回生 
井口智勝
SailsWorkShop
の目的
<for All>
Watnowにリアルタイム通信技術を導入する
<for One>
取り敢えず、書けるようになること。(スピード重視)
ある程度、体系的な知識化もしていく。
Sails WorkShop
Menu
1回目:Sailsって何?CRUDappを作ろう!
2回目:Policiesの使い方 ∼sessionや認証∼
3回目:appをリアルタイム化しよう!
4回目:Sails✕Marionette
5回目:細かい部分の共有など...
今日のアウトライン
Policiesって何?
Policiesを導入した時の開発の全体像
認証・セッションを導入しよう!
その他機能紹介(Services, Passport)
2014/12/8(Mon)
Policiesって何?
Policies in Sails are versatile tools
for authorization and access
control-- they let you allow or deny
access to your controllers down to a
fine level of granularity.
Policyによる
粒度の細かい認証
レベル3
レベル1
レベル2
レベル4
ユーザー
レベル3ページヘの
リクエスト
任意のControllerへ
今日のアウトライン
Policiesって何?
Policiesを導入した時の開発の全体像
認証・セッションを導入しよう!
その他機能紹介(Services, Passport)
2014/12/8(Mon)
TOP
新規
作成
詳細
userCanSeeProfile
一覧
admin
編集
削除
Policies適応図
admin.js -> adminだけが通れる
userCanSeeProfile.js
->admin か 自分の画面なら通れる
userCanSeeProfile
userCanSeeProfile
サイン
イン
adminなら adminじゃ
ないなら
今日のアウトライン
Policiesって何?
Policiesを導入した時の開発の全体像
認証・セッションを導入しよう!
その他機能紹介(Services, Passport)
2014/12/8(Mon)
環境設定
環境設定
sails generate controller session
npm install bcrypt —save
admin.pngとpawn.pngをassets/
images/内へ
ソース
https://github.com/igtm/sails-sample-
app1
View
view/layout.ejs
L38∼L80(headerになります。)
view/session/
new.ejs
sessionフォルダの作成
new.ejsを作成(サインアップページ)
Model
User
L26∼L29 (admin追加)
L44∼L76
beforeValidate: validateする前
beforeCreate: Modelをcreateする前
Controller
UserController
L36∼L55 (既に作成済みだが少し変わってる)
新規作成された後に同時に、session認証して
いる(L47とL48)
SessionController
newはさっき作ったsession/new.ejsを表示
するだけ
createが認証(L53,L54でセッションに保存)
adminである:一覧ページへ
adminでない:自分のページヘ
policies
Policyによる
粒度の細かい認証
レベル3
レベル1
レベル2
レベル4
ユーザー
レベル3ページヘの
リクエスト
任意のControllerへ
Policyによる
粒度の細かい認証
userCanSeeProfile.js
admin.js
ユーザー
個別画面、編集、
削除
UserCanSeeProfile.js: admin+自分のpage
一覧画面
指定Controllerへ
こういうパターンも
ありだと思う
admin.js
ユーザー
個別画面、編集、
削除
isMypage.js: 自分のpage
一覧画面
指定Controllerへ
isMypage.jsadmin.js
admin.js
新規作成する
adminのみOK
userCanSeeProfile.j
s
新規作成する
adminか自分のページならOK
config
config/policies.js
L35∼L42
コントローラー名:{
アクション名:policiesファイル名
}
再定義した時はoverrideされる。×加算式
Well done!
sails liftしてみましょう!
TOP
新規
作成
詳細
userCanSeeProfile
一覧
admin
編集
削除
おさらい
admin.js -> adminだけが通れる
userCanSeeProfile.js
->admin か 自分の画面なら通れる
userCanSeeProfile
userCanSeeProfile
サイン
イン
adminなら adminじゃ
ないなら
Policiesはcontrollerに通す前に、低粒度で
前処理ができる
おさらい
今日のアウトライン
Policiesって何?
Policiesを導入した時の開発の全体像
認証・セッションを導入しよう!
その他機能紹介(Services, Passport)
2014/12/8(Mon)
servicesって何?
モジュール
var hoge = require(‘hoge’);
marionetteのmoduleに近い??
servicesって何?
modelの継承ができる
var baseModel = require(baseModel);
_ = require( lodash );
module.exports = _.merge(baseModel,{
attributes: {
}
}
Sailsで
Passportを使う!
node.jsのライブラリ
140以上の認証を簡単利用 ( twiiter, FB )
参考:http://www.geektantra.com/
2013/08/implement-passport-js-
authentication-with-sails-js/
おつかれさまでした!

More Related Content

Similar to Sails workshop2

【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用Hinemos
 
1分で分かる SoftLayer 監視入門
1分で分かる SoftLayer 監視入門1分で分かる SoftLayer 監視入門
1分で分かる SoftLayer 監視入門Masahito Zembutsu
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発Takashi Watanabe
 
プロジェクト管理支援環境の高度化に向けた取り組み
プロジェクト管理支援環境の高度化に向けた取り組みプロジェクト管理支援環境の高度化に向けた取り組み
プロジェクト管理支援環境の高度化に向けた取り組みagileware_jp
 
Hybrid appmeetssecurity kdl20171017-20
Hybrid appmeetssecurity kdl20171017-20Hybrid appmeetssecurity kdl20171017-20
Hybrid appmeetssecurity kdl20171017-20龍弘 岡
 
デブサミ2013【15-C-8】セキュリティ要求仕様モデルプランで日本は変わるか?(百瀬昌幸氏)
デブサミ2013【15-C-8】セキュリティ要求仕様モデルプランで日本は変わるか?(百瀬昌幸氏)デブサミ2013【15-C-8】セキュリティ要求仕様モデルプランで日本は変わるか?(百瀬昌幸氏)
デブサミ2013【15-C-8】セキュリティ要求仕様モデルプランで日本は変わるか?(百瀬昌幸氏)Developers Summit
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps 智治 長沢
 
Cybozu office seminar2020
Cybozu office seminar2020Cybozu office seminar2020
Cybozu office seminar2020Cybozucommunity
 
エンジニア必見!Sreへの第一歩
エンジニア必見!Sreへの第一歩エンジニア必見!Sreへの第一歩
エンジニア必見!Sreへの第一歩Takuya Tezuka
 
AgileShimane始動!! in OSC2011Shimane
AgileShimane始動!! in OSC2011ShimaneAgileShimane始動!! in OSC2011Shimane
AgileShimane始動!! in OSC2011ShimaneRyuichi Tsuruhara
 
WisePoint Shibboleth presentation at Oosaka
WisePoint Shibboleth presentation at Oosaka WisePoint Shibboleth presentation at Oosaka
WisePoint Shibboleth presentation at Oosaka Katsumi Yamashita
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用Reiko Rikuno
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~SEGADevTech
 
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築cloudconductor
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre正善 大島
 
Jupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NIIJupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NIIaxsh co., LTD.
 
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライドJJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライドToshiakiArai
 
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUGチーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG満徳 関
 

Similar to Sails workshop2 (20)

【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
 
1分で分かる SoftLayer 監視入門
1分で分かる SoftLayer 監視入門1分で分かる SoftLayer 監視入門
1分で分かる SoftLayer 監視入門
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
 
プロジェクト管理支援環境の高度化に向けた取り組み
プロジェクト管理支援環境の高度化に向けた取り組みプロジェクト管理支援環境の高度化に向けた取り組み
プロジェクト管理支援環境の高度化に向けた取り組み
 
Hybrid appmeetssecurity kdl20171017-20
Hybrid appmeetssecurity kdl20171017-20Hybrid appmeetssecurity kdl20171017-20
Hybrid appmeetssecurity kdl20171017-20
 
デブサミ2013【15-C-8】セキュリティ要求仕様モデルプランで日本は変わるか?(百瀬昌幸氏)
デブサミ2013【15-C-8】セキュリティ要求仕様モデルプランで日本は変わるか?(百瀬昌幸氏)デブサミ2013【15-C-8】セキュリティ要求仕様モデルプランで日本は変わるか?(百瀬昌幸氏)
デブサミ2013【15-C-8】セキュリティ要求仕様モデルプランで日本は変わるか?(百瀬昌幸氏)
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps
 
Social Literacy
Social LiteracySocial Literacy
Social Literacy
 
Cybozu office seminar2020
Cybozu office seminar2020Cybozu office seminar2020
Cybozu office seminar2020
 
エンジニア必見!Sreへの第一歩
エンジニア必見!Sreへの第一歩エンジニア必見!Sreへの第一歩
エンジニア必見!Sreへの第一歩
 
AgileShimane始動!! in OSC2011Shimane
AgileShimane始動!! in OSC2011ShimaneAgileShimane始動!! in OSC2011Shimane
AgileShimane始動!! in OSC2011Shimane
 
WisePoint Shibboleth presentation at Oosaka
WisePoint Shibboleth presentation at Oosaka WisePoint Shibboleth presentation at Oosaka
WisePoint Shibboleth presentation at Oosaka
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
 
Jupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NIIJupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NII
 
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライドJJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
 
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUGチーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
 

Sails workshop2