Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sails workshop2

1,109 views

Published on

This is a slide at in-house sails workshop.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Sails workshop2

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

×