SlideShare a Scribd company logo
1 of 32
Download to read offline
OAuth & SNS
Geek Bar #6
中央大学 飯尾 淳
Copyright © Jun Iio 2
目標
●
SNSから取得したアカウントでデータを管理で
きるウェブアプリを作成する
●
SNSから個人情報が簡単にぶっこ抜かれる怖さ
を知る
●
上の2つは表裏一体.今日は性善説に従い解説
します
Copyright © Jun Iio 3
簡単にアクセスしてませんか?
Copyright © Jun Iio 4
手順
●
Sinatraを知る
●
ユーザ管理しないWebアプリを作ってみる
●
ユーザ管理のためにOAuthを導入する
●
「Facebookでログイン」を試してみる
– どんな情報が得られるだろうか
Copyright © Jun Iio 5
Sinatraとは
●
RubyによるWebフレームワーク
●
Ruby on Rails よりシンプル,単純
– ルーティングベースの記述
– Railsで活用する様々な技術が使える
– Sinatraで理解しておけばRailsへ移行しやすい
●
以下のチュートリアルでは ruby と bundler を
使うので,使える環境を用意してください
Copyright © Jun Iio 6
演習1
●
作業ディレクトリを用意してください
●
そのディレクトリの中に,myapp.rb という
ファイルと Gemfile というファイルを2つ作り
ます
●
今回は…
– ローカル環境でサーバを立てて,
– ローカルのクライアントからアクセスします
Copyright © Jun Iio 7
Hello World
●
myapp.rb の中身
require 'sinatra'
class SinatraApp < Sinatra::Base
get '/' do
"Hello World!"
end
end
SinatraApp.run! if __FILE__ == $0
Copyright © Jun Iio 8
Hello World
●
Gemfileとは?
– ライブラリ管理用の
ファイル
●
Gemfileの中身
source :rubygems
gem 'sinatra'
gem 'thin'
●
作業
$ bundle install --path vendor/bundle
$ ruby myapp.rb
(bundle exec ruby myapp.rb)
thinサーバを
使うとき用
Copyright © Jun Iio 9
サーバの起動
止めるときは
Ctrl + C を2回
Copyright © Jun Iio 10
ブラウザで確認
http://localhost:4567/ にアクセスしてみよう
Copyright © Jun Iio 11
ルーティング処理
Copyright © Jun Iio 12
erb(テンプレート処理)
Copyright © Jun Iio 13
ユーザー管理に必要なもの
●
ユーザーID
– 個別のユーザーを内部で識別するために必要
●
認証システム
– 特定のユーザーがその人であることを認証
– 個別の実装は面倒くさい,セキュリティ的に不安
●
OAuth(オース)の仕組みを利用
– SNSなどが提供
– 認証はSNS側で実施
– 個別にアクセスできるトークンを利用可能
Copyright © Jun Iio 14
OAuthのしくみ
Copyright © Jun Iio 15
演習2
●
OAuthのしくみ…「ちょー面倒くさい」
– OmniAuth … ライブラリ(gem)の利用
●
そこで演習
– 先ほどと違う作業ディレクトリを用意してください
– サンプルプログラムをダウンロード,展開してくだ
さい(GitHubに置いておきました)
– https://github.com/iiojun/oauth_example
●
環境設定
– $ bundle install --path vendor/bundle
Copyright © Jun Iio 16
developers.facebook.com
Copyright © Jun Iio 17
新しいアプリを追加
Copyright © Jun Iio 18
新しいアプリIDを作成
Copyright © Jun Iio 19
セキュリティチェック
Copyright © Jun Iio 20
アプリの生成
Copyright © Jun Iio 21
アプリIDとapp secretの取得
Copyright © Jun Iio 22
アプリ側への埋め込み
Copyright © Jun Iio 23
Facebookログインの追加
Copyright © Jun Iio 24
Facebookログインの設定
Copyright © Jun Iio 25
サーバー起動
●
準備が整ったので,
– サーバーを起動する
– http://localhost:4567/ にアクセス
– 「Login with facebook」をクリック
Copyright © Jun Iio 26
FB側の対応
Copyright © Jun Iio 27
認証後に得られる情報
Copyright © Jun Iio 28
ログイン/ログアウトの確認
●
ログインしていない状態で…
http://localhost:4567/protected
にアクセス
●
ログインする
●
ログインした状態で…
http://localhost:4567/protected
にアクセス
●
ログアウトする
●
再び http://localhost:4567/protected にア
クセスするとどうなるか?
Copyright © Jun Iio 29
login/logout管理の仕組み
Copyright © Jun Iio 30
login/logout管理の仕組み (cont'd)
ここでアカウント情報
を取得し,セッション
トークンに紐付けて
おけばokですね!
Copyright © Jun Iio 31
Twitterで認証/Githubで認証など
Copyright © Jun Iio 32
まとめ
●
Sinatraを導入しました
●
ユーザ管理しないWebアプリを作ってみました
●
ユーザ管理のためにOAuthを導入しました
●
「Facebookでログイン」を試してみました

More Related Content

Similar to OAuth and SNS

Big Dataで価値を生み出すためのSmall Trial & Method (みんなのPython勉強会#42)
Big Dataで価値を生み出すためのSmall Trial & Method (みんなのPython勉強会#42)Big Dataで価値を生み出すためのSmall Trial & Method (みんなのPython勉強会#42)
Big Dataで価値を生み出すためのSmall Trial & Method (みんなのPython勉強会#42)Shinsaku Kono
 
IT革命からコミュニティ、コミュニケーション革命に!
IT革命からコミュニティ、コミュニケーション革命に!IT革命からコミュニティ、コミュニケーション革命に!
IT革命からコミュニティ、コミュニケーション革命に!Yuichi Morito
 
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】WESEEKWESEEK
 
Discussion for Social WEB Bisiness
Discussion for Social WEB BisinessDiscussion for Social WEB Bisiness
Discussion for Social WEB BisinessDaisuke Masubuchi
 
Hybrid appmeetssecurity kdl20171017-20
Hybrid appmeetssecurity kdl20171017-20Hybrid appmeetssecurity kdl20171017-20
Hybrid appmeetssecurity kdl20171017-20龍弘 岡
 
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。Akira Fukami
 
【20121124】word bench大阪
【20121124】word bench大阪【20121124】word bench大阪
【20121124】word bench大阪Raysus Co.,Ltd.
 
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~法林浩之
 
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法Akira Hatsune
 
2015 0710 東京鯱光会月例会_公開用.pptx
2015 0710 東京鯱光会月例会_公開用.pptx2015 0710 東京鯱光会月例会_公開用.pptx
2015 0710 東京鯱光会月例会_公開用.pptxOsamu Sugiura
 
記事には書けなかったHTML5の話
記事には書けなかったHTML5の話記事には書けなかったHTML5の話
記事には書けなかったHTML5の話Shumpei Shiraishi
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 
レビューの自動化事業について
レビューの自動化事業についてレビューの自動化事業について
レビューの自動化事業についてssuserf1e090
 
レビューの自動化事業について
レビューの自動化事業についてレビューの自動化事業について
レビューの自動化事業についてssuserf1e090
 

Similar to OAuth and SNS (20)

Big Dataで価値を生み出すためのSmall Trial & Method (みんなのPython勉強会#42)
Big Dataで価値を生み出すためのSmall Trial & Method (みんなのPython勉強会#42)Big Dataで価値を生み出すためのSmall Trial & Method (みんなのPython勉強会#42)
Big Dataで価値を生み出すためのSmall Trial & Method (みんなのPython勉強会#42)
 
Ansible study1
Ansible study1Ansible study1
Ansible study1
 
IT革命からコミュニティ、コミュニケーション革命に!
IT革命からコミュニティ、コミュニケーション革命に!IT革命からコミュニティ、コミュニケーション革命に!
IT革命からコミュニティ、コミュニケーション革命に!
 
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
 
Discussion for Social WEB Bisiness
Discussion for Social WEB BisinessDiscussion for Social WEB Bisiness
Discussion for Social WEB Bisiness
 
Hybrid appmeetssecurity kdl20171017-20
Hybrid appmeetssecurity kdl20171017-20Hybrid appmeetssecurity kdl20171017-20
Hybrid appmeetssecurity kdl20171017-20
 
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
OneNote のススメ。 Office 365 利活用の促進 - クライアント推し。
 
Wio lte iot_hub
Wio lte iot_hubWio lte iot_hub
Wio lte iot_hub
 
【20121124】word bench大阪
【20121124】word bench大阪【20121124】word bench大阪
【20121124】word bench大阪
 
Scc2015 SNS Tech
Scc2015 SNS TechScc2015 SNS Tech
Scc2015 SNS Tech
 
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
 
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
 
2015 0710 東京鯱光会月例会_公開用.pptx
2015 0710 東京鯱光会月例会_公開用.pptx2015 0710 東京鯱光会月例会_公開用.pptx
2015 0710 東京鯱光会月例会_公開用.pptx
 
20141111 明日の認証会議資料(寺田)
20141111 明日の認証会議資料(寺田)20141111 明日の認証会議資料(寺田)
20141111 明日の認証会議資料(寺田)
 
記事には書けなかったHTML5の話
記事には書けなかったHTML5の話記事には書けなかったHTML5の話
記事には書けなかったHTML5の話
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
Go + Pulsar WebSocket APIの利用事例 #pulsarjp
Go + Pulsar WebSocket APIの利用事例 #pulsarjpGo + Pulsar WebSocket APIの利用事例 #pulsarjp
Go + Pulsar WebSocket APIの利用事例 #pulsarjp
 
レビューの自動化事業について
レビューの自動化事業についてレビューの自動化事業について
レビューの自動化事業について
 
レビューの自動化事業について
レビューの自動化事業についてレビューの自動化事業について
レビューの自動化事業について
 
コミュニティ紹介
コミュニティ紹介コミュニティ紹介
コミュニティ紹介
 

More from Jun Iio

フラクタルへの誘い an introduction to fractal
フラクタルへの誘い an introduction to fractalフラクタルへの誘い an introduction to fractal
フラクタルへの誘い an introduction to fractalJun Iio
 
オンラインイベント支援システムOLiVESの開発と運用
オンラインイベント支援システムOLiVESの開発と運用オンラインイベント支援システムOLiVESの開発と運用
オンラインイベント支援システムOLiVESの開発と運用Jun Iio
 
麻雀を全く知らない人に純正九蓮宝燈とは何かを教えるための資料
麻雀を全く知らない人に純正九蓮宝燈とは何かを教えるための資料麻雀を全く知らない人に純正九蓮宝燈とは何かを教えるための資料
麻雀を全く知らない人に純正九蓮宝燈とは何かを教えるための資料Jun Iio
 
オンラインイベント支援システムを作ってみたらどうだったかな?
オンラインイベント支援システムを作ってみたらどうだったかな?オンラインイベント支援システムを作ってみたらどうだったかな?
オンラインイベント支援システムを作ってみたらどうだったかな?Jun Iio
 
Do you know every cat has four bears?
Do you know every cat has four bears?Do you know every cat has four bears?
Do you know every cat has four bears?Jun Iio
 
大学教員になりたい企業人の皆様へ
大学教員になりたい企業人の皆様へ大学教員になりたい企業人の皆様へ
大学教員になりたい企業人の皆様へJun Iio
 
情報系学部におけるBYODの試み
情報系学部におけるBYODの試み情報系学部におけるBYODの試み
情報系学部におけるBYODの試みJun Iio
 
The Semiotics of Toilet Signs
The Semiotics of Toilet SignsThe Semiotics of Toilet Signs
The Semiotics of Toilet SignsJun Iio
 
OpenCampus2019_Tama
OpenCampus2019_TamaOpenCampus2019_Tama
OpenCampus2019_TamaJun Iio
 
不偏分散ではなぜNでなくN-1で割るのか
不偏分散ではなぜNでなくN-1で割るのか不偏分散ではなぜNでなくN-1で割るのか
不偏分散ではなぜNでなくN-1で割るのかJun Iio
 
2019年春季HCD研究発表会特別講話
2019年春季HCD研究発表会特別講話2019年春季HCD研究発表会特別講話
2019年春季HCD研究発表会特別講話Jun Iio
 
UXDの課題
UXDの課題UXDの課題
UXDの課題Jun Iio
 
2019年度BYODソフトウェアインストールガイダンス資料
2019年度BYODソフトウェアインストールガイダンス資料2019年度BYODソフトウェアインストールガイダンス資料
2019年度BYODソフトウェアインストールガイダンス資料Jun Iio
 
Twitterでみる社会のトレンド
Twitterでみる社会のトレンドTwitterでみる社会のトレンド
Twitterでみる社会のトレンドJun Iio
 
The presentation material for my lecture at the open campus, 22nd Sep. 2018 (2)
The presentation material for my lecture at the open campus, 22nd Sep. 2018 (2)The presentation material for my lecture at the open campus, 22nd Sep. 2018 (2)
The presentation material for my lecture at the open campus, 22nd Sep. 2018 (2)Jun Iio
 
The presentation material for my lecture at the open campus, 22nd Sep. 2018
The presentation material for my lecture at the open campus, 22nd Sep. 2018The presentation material for my lecture at the open campus, 22nd Sep. 2018
The presentation material for my lecture at the open campus, 22nd Sep. 2018Jun Iio
 
Lessons Learned from Data Preparation for Geographic Information Systems Usin...
Lessons Learned from Data Preparation for Geographic Information Systems Usin...Lessons Learned from Data Preparation for Geographic Information Systems Usin...
Lessons Learned from Data Preparation for Geographic Information Systems Usin...Jun Iio
 
図書館利用実態の可視化 および 読書感想文コンクール作品の分析
図書館利用実態の可視化 および 読書感想文コンクール作品の分析図書館利用実態の可視化 および 読書感想文コンクール作品の分析
図書館利用実態の可視化 および 読書感想文コンクール作品の分析Jun Iio
 
たこ焼き屋で学ぶ情報隠蔽
たこ焼き屋で学ぶ情報隠蔽たこ焼き屋で学ぶ情報隠蔽
たこ焼き屋で学ぶ情報隠蔽Jun Iio
 
トイレサインとピクトグラム
トイレサインとピクトグラムトイレサインとピクトグラム
トイレサインとピクトグラムJun Iio
 

More from Jun Iio (20)

フラクタルへの誘い an introduction to fractal
フラクタルへの誘い an introduction to fractalフラクタルへの誘い an introduction to fractal
フラクタルへの誘い an introduction to fractal
 
オンラインイベント支援システムOLiVESの開発と運用
オンラインイベント支援システムOLiVESの開発と運用オンラインイベント支援システムOLiVESの開発と運用
オンラインイベント支援システムOLiVESの開発と運用
 
麻雀を全く知らない人に純正九蓮宝燈とは何かを教えるための資料
麻雀を全く知らない人に純正九蓮宝燈とは何かを教えるための資料麻雀を全く知らない人に純正九蓮宝燈とは何かを教えるための資料
麻雀を全く知らない人に純正九蓮宝燈とは何かを教えるための資料
 
オンラインイベント支援システムを作ってみたらどうだったかな?
オンラインイベント支援システムを作ってみたらどうだったかな?オンラインイベント支援システムを作ってみたらどうだったかな?
オンラインイベント支援システムを作ってみたらどうだったかな?
 
Do you know every cat has four bears?
Do you know every cat has four bears?Do you know every cat has four bears?
Do you know every cat has four bears?
 
大学教員になりたい企業人の皆様へ
大学教員になりたい企業人の皆様へ大学教員になりたい企業人の皆様へ
大学教員になりたい企業人の皆様へ
 
情報系学部におけるBYODの試み
情報系学部におけるBYODの試み情報系学部におけるBYODの試み
情報系学部におけるBYODの試み
 
The Semiotics of Toilet Signs
The Semiotics of Toilet SignsThe Semiotics of Toilet Signs
The Semiotics of Toilet Signs
 
OpenCampus2019_Tama
OpenCampus2019_TamaOpenCampus2019_Tama
OpenCampus2019_Tama
 
不偏分散ではなぜNでなくN-1で割るのか
不偏分散ではなぜNでなくN-1で割るのか不偏分散ではなぜNでなくN-1で割るのか
不偏分散ではなぜNでなくN-1で割るのか
 
2019年春季HCD研究発表会特別講話
2019年春季HCD研究発表会特別講話2019年春季HCD研究発表会特別講話
2019年春季HCD研究発表会特別講話
 
UXDの課題
UXDの課題UXDの課題
UXDの課題
 
2019年度BYODソフトウェアインストールガイダンス資料
2019年度BYODソフトウェアインストールガイダンス資料2019年度BYODソフトウェアインストールガイダンス資料
2019年度BYODソフトウェアインストールガイダンス資料
 
Twitterでみる社会のトレンド
Twitterでみる社会のトレンドTwitterでみる社会のトレンド
Twitterでみる社会のトレンド
 
The presentation material for my lecture at the open campus, 22nd Sep. 2018 (2)
The presentation material for my lecture at the open campus, 22nd Sep. 2018 (2)The presentation material for my lecture at the open campus, 22nd Sep. 2018 (2)
The presentation material for my lecture at the open campus, 22nd Sep. 2018 (2)
 
The presentation material for my lecture at the open campus, 22nd Sep. 2018
The presentation material for my lecture at the open campus, 22nd Sep. 2018The presentation material for my lecture at the open campus, 22nd Sep. 2018
The presentation material for my lecture at the open campus, 22nd Sep. 2018
 
Lessons Learned from Data Preparation for Geographic Information Systems Usin...
Lessons Learned from Data Preparation for Geographic Information Systems Usin...Lessons Learned from Data Preparation for Geographic Information Systems Usin...
Lessons Learned from Data Preparation for Geographic Information Systems Usin...
 
図書館利用実態の可視化 および 読書感想文コンクール作品の分析
図書館利用実態の可視化 および 読書感想文コンクール作品の分析図書館利用実態の可視化 および 読書感想文コンクール作品の分析
図書館利用実態の可視化 および 読書感想文コンクール作品の分析
 
たこ焼き屋で学ぶ情報隠蔽
たこ焼き屋で学ぶ情報隠蔽たこ焼き屋で学ぶ情報隠蔽
たこ焼き屋で学ぶ情報隠蔽
 
トイレサインとピクトグラム
トイレサインとピクトグラムトイレサインとピクトグラム
トイレサインとピクトグラム
 

Recently uploaded

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

OAuth and SNS

  • 1. OAuth & SNS Geek Bar #6 中央大学 飯尾 淳
  • 2. Copyright © Jun Iio 2 目標 ● SNSから取得したアカウントでデータを管理で きるウェブアプリを作成する ● SNSから個人情報が簡単にぶっこ抜かれる怖さ を知る ● 上の2つは表裏一体.今日は性善説に従い解説 します
  • 3. Copyright © Jun Iio 3 簡単にアクセスしてませんか?
  • 4. Copyright © Jun Iio 4 手順 ● Sinatraを知る ● ユーザ管理しないWebアプリを作ってみる ● ユーザ管理のためにOAuthを導入する ● 「Facebookでログイン」を試してみる – どんな情報が得られるだろうか
  • 5. Copyright © Jun Iio 5 Sinatraとは ● RubyによるWebフレームワーク ● Ruby on Rails よりシンプル,単純 – ルーティングベースの記述 – Railsで活用する様々な技術が使える – Sinatraで理解しておけばRailsへ移行しやすい ● 以下のチュートリアルでは ruby と bundler を 使うので,使える環境を用意してください
  • 6. Copyright © Jun Iio 6 演習1 ● 作業ディレクトリを用意してください ● そのディレクトリの中に,myapp.rb という ファイルと Gemfile というファイルを2つ作り ます ● 今回は… – ローカル環境でサーバを立てて, – ローカルのクライアントからアクセスします
  • 7. Copyright © Jun Iio 7 Hello World ● myapp.rb の中身 require 'sinatra' class SinatraApp < Sinatra::Base get '/' do "Hello World!" end end SinatraApp.run! if __FILE__ == $0
  • 8. Copyright © Jun Iio 8 Hello World ● Gemfileとは? – ライブラリ管理用の ファイル ● Gemfileの中身 source :rubygems gem 'sinatra' gem 'thin' ● 作業 $ bundle install --path vendor/bundle $ ruby myapp.rb (bundle exec ruby myapp.rb) thinサーバを 使うとき用
  • 9. Copyright © Jun Iio 9 サーバの起動 止めるときは Ctrl + C を2回
  • 10. Copyright © Jun Iio 10 ブラウザで確認 http://localhost:4567/ にアクセスしてみよう
  • 11. Copyright © Jun Iio 11 ルーティング処理
  • 12. Copyright © Jun Iio 12 erb(テンプレート処理)
  • 13. Copyright © Jun Iio 13 ユーザー管理に必要なもの ● ユーザーID – 個別のユーザーを内部で識別するために必要 ● 認証システム – 特定のユーザーがその人であることを認証 – 個別の実装は面倒くさい,セキュリティ的に不安 ● OAuth(オース)の仕組みを利用 – SNSなどが提供 – 認証はSNS側で実施 – 個別にアクセスできるトークンを利用可能
  • 14. Copyright © Jun Iio 14 OAuthのしくみ
  • 15. Copyright © Jun Iio 15 演習2 ● OAuthのしくみ…「ちょー面倒くさい」 – OmniAuth … ライブラリ(gem)の利用 ● そこで演習 – 先ほどと違う作業ディレクトリを用意してください – サンプルプログラムをダウンロード,展開してくだ さい(GitHubに置いておきました) – https://github.com/iiojun/oauth_example ● 環境設定 – $ bundle install --path vendor/bundle
  • 16. Copyright © Jun Iio 16 developers.facebook.com
  • 17. Copyright © Jun Iio 17 新しいアプリを追加
  • 18. Copyright © Jun Iio 18 新しいアプリIDを作成
  • 19. Copyright © Jun Iio 19 セキュリティチェック
  • 20. Copyright © Jun Iio 20 アプリの生成
  • 21. Copyright © Jun Iio 21 アプリIDとapp secretの取得
  • 22. Copyright © Jun Iio 22 アプリ側への埋め込み
  • 23. Copyright © Jun Iio 23 Facebookログインの追加
  • 24. Copyright © Jun Iio 24 Facebookログインの設定
  • 25. Copyright © Jun Iio 25 サーバー起動 ● 準備が整ったので, – サーバーを起動する – http://localhost:4567/ にアクセス – 「Login with facebook」をクリック
  • 26. Copyright © Jun Iio 26 FB側の対応
  • 27. Copyright © Jun Iio 27 認証後に得られる情報
  • 28. Copyright © Jun Iio 28 ログイン/ログアウトの確認 ● ログインしていない状態で… http://localhost:4567/protected にアクセス ● ログインする ● ログインした状態で… http://localhost:4567/protected にアクセス ● ログアウトする ● 再び http://localhost:4567/protected にア クセスするとどうなるか?
  • 29. Copyright © Jun Iio 29 login/logout管理の仕組み
  • 30. Copyright © Jun Iio 30 login/logout管理の仕組み (cont'd) ここでアカウント情報 を取得し,セッション トークンに紐付けて おけばokですね!
  • 31. Copyright © Jun Iio 31 Twitterで認証/Githubで認証など
  • 32. Copyright © Jun Iio 32 まとめ ● Sinatraを導入しました ● ユーザ管理しないWebアプリを作ってみました ● ユーザ管理のためにOAuthを導入しました ● 「Facebookでログイン」を試してみました