sails workshop2

36
Sails WorkShop (2) 立命館大学 経営学部3回生  井口智勝

Upload: tomokatsu-iguchi

Post on 14-Jul-2015

315 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Sails workshop2

Sails WorkShop (2)

立命館大学 経営学部3回生  井口智勝

Page 2: Sails workshop2

SailsWorkShop の目的

<for All>

Watnowにリアルタイム通信技術を導入する

<for One>

取り敢えず、書けるようになること。(スピード重視)

ある程度、体系的な知識化もしていく。

Page 3: Sails workshop2

Sails WorkShop Menu

1回目:Sailsって何?CRUDappを作ろう!

2回目:Policiesの使い方 ~sessionや認証~

3回目:appをリアルタイム化しよう!

4回目:Sails✕Marionette

5回目:細かい部分の共有など...

Page 4: Sails workshop2

今日のアウトライン

Policiesって何?

Policiesを導入した時の開発の全体像

認証・セッションを導入しよう!

その他機能紹介(Services, Passport)

2014/12/8(Mon)

Page 5: Sails workshop2

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.

Page 6: Sails workshop2

Policyによる 粒度の細かい認証

レベル3

レベル1

レベル2

レベル4

ユーザー

レベル3ページヘの リクエスト

任意のControllerへ

Page 7: Sails workshop2

今日のアウトライン

Policiesって何?

Policiesを導入した時の開発の全体像

認証・セッションを導入しよう!

その他機能紹介(Services, Passport)

2014/12/8(Mon)

Page 8: Sails workshop2

TOP

新規 作成

詳細

userCanSeeProfile

一覧

admin 編集

削除

Policies適応図admin.js -> adminだけが通れる

userCanSeeProfile.js ->admin か 自分の画面なら通れる

userCanSeeProfile

userCanSeeProfile

サインイン

adminなら adminじゃないなら

Page 9: Sails workshop2

今日のアウトライン

Policiesって何?

Policiesを導入した時の開発の全体像

認証・セッションを導入しよう!

その他機能紹介(Services, Passport)

2014/12/8(Mon)

Page 10: Sails workshop2

環境設定

Page 11: Sails workshop2

環境設定

sails generate controller session

npm install bcrypt —save

admin.pngとpawn.pngをassets/

images/内へ

Page 12: Sails workshop2

ソース

https://github.com/igtm/sails-sample-app1

Page 13: Sails workshop2

View

Page 14: Sails workshop2

view/layout.ejs

L38~L80(headerになります。)

Page 15: Sails workshop2

view/session/new.ejs

sessionフォルダの作成

new.ejsを作成(サインアップページ)

Page 16: Sails workshop2

Model

Page 17: Sails workshop2

User

L26~L29 (admin追加)

L44~L76

beforeValidate: validateする前

beforeCreate: Modelをcreateする前

Page 18: Sails workshop2

Controller

Page 19: Sails workshop2

UserController

L36~L55 (既に作成済みだが少し変わってる)

新規作成された後に同時に、session認証して

いる(L47とL48)

Page 20: Sails workshop2

SessionController

newはさっき作ったsession/new.ejsを表示するだけ

createが認証(L53,L54でセッションに保存)

adminである:一覧ページへ

adminでない:自分のページヘ

Page 21: Sails workshop2

policies

Page 22: Sails workshop2

Policyによる 粒度の細かい認証

レベル3

レベル1

レベル2

レベル4

ユーザー

レベル3ページヘの リクエスト

任意のControllerへ

Page 23: Sails workshop2

Policyによる 粒度の細かい認証

userCanSeeProfile.js

admin.js

ユーザー個別画面、編集、

削除

UserCanSeeProfile.js: admin+自分のpage

一覧画面指定Controllerへ

Page 24: Sails workshop2

こういうパターンも ありだと思う

admin.js

ユーザー個別画面、編集、

削除

isMypage.js: 自分のpage

一覧画面指定Controllerへ

isMypage.jsadmin.js

Page 25: Sails workshop2

admin.js

新規作成する

adminのみOK

Page 26: Sails workshop2

userCanSeeProfile.js

新規作成する

adminか自分のページならOK

Page 27: Sails workshop2

config

Page 28: Sails workshop2

config/policies.js

L35~L42

コントローラー名:{

アクション名:policiesファイル名

}

再定義した時はoverrideされる。×加算式

Page 29: Sails workshop2

Well done!

sails liftしてみましょう!

Page 30: Sails workshop2

TOP

新規 作成

詳細

userCanSeeProfile

一覧

admin 編集

削除

おさらいadmin.js -> adminだけが通れる

userCanSeeProfile.js ->admin か 自分の画面なら通れる

userCanSeeProfile

userCanSeeProfile

サインイン

adminなら adminじゃないなら

Page 31: Sails workshop2

Policiesはcontrollerに通す前に、低粒度で前処理ができる

おさらい

Page 32: Sails workshop2

今日のアウトライン

Policiesって何?

Policiesを導入した時の開発の全体像

認証・セッションを導入しよう!

その他機能紹介(Services, Passport)

2014/12/8(Mon)

Page 33: Sails workshop2

servicesって何?

モジュール

var hoge = require(‘hoge’);

marionetteのmoduleに近い??

Page 34: Sails workshop2

servicesって何?modelの継承ができる

var baseModel = require(baseModel);

_ = require(‘lodash’);

module.exports = _.merge(baseModel,{

attributes: {

}

}

Page 35: Sails workshop2

Sailsで Passportを使う!

node.jsのライブラリ

140以上の認証を簡単利用 ( twiiter, FB )

参考:http://www.geektantra.com/

2013/08/implement-passport-js-authentication-with-sails-js/

Page 36: Sails workshop2

おつかれさまでした!