Download - Sails workshop2
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/内へ
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.js
新規作成する
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/
おつかれさまでした!