Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Laravel + Auth0で複数のSNS認証を簡単に実現.pdf
Search
Takayuki
August 07, 2019
Programming
1
380
Laravel + Auth0で複数のSNS認証を簡単に実現.pdf
Laravel + Auth0で複数のSNS認証を簡単に実現
Takayuki
August 07, 2019
Tweet
Share
More Decks by Takayuki
See All by Takayuki
Laravel × Clean Architecture
bumptakayuki
0
340
エンジニアのキャリア論
bumptakayuki
0
200
地方カンファレンス主催のススメ
bumptakayuki
1
210
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.1k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
680
沖縄観光、名物を一挙紹介!
bumptakayuki
2
670
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
2.8k
flutterでイベントアプリを作ってみた
bumptakayuki
0
160
オフショア開発の辛みと学んだ事
bumptakayuki
0
400
Other Decks in Programming
See All in Programming
Rancher と Terraform
fufuhu
2
550
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.9k
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
270
AIコーディングAgentとの向き合い方
eycjur
0
270
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
120
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
450
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
180
Ruby Parser progress report 2025
yui_knk
1
450
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
320
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
240
Reading Rails 1.0 Source Code
okuramasafumi
0
240
How Android Uses Data Structures Behind The Scenes
l2hyunwoo
0
470
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Music & Morning Musume
bryan
46
6.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
It's Worth the Effort
3n
187
28k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Practical Orchestrator
shlominoach
190
11k
KATA
mclloyd
32
14k
Done Done
chrislema
185
16k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
Laravel + Auth0Ͱෳͷ SNSೝূΛ؆୯ʹ࣮ݱ Laravel + Auth0Ͱෳͷ SNSೝূΛ؆୯ʹ࣮ݱ
3 LaravelͰͷ࣮ํ๏ Agenda 2 Auth0ͱ 1 ࣗݾհ 4 Demo
1 ࣗݾհ
4 ࣗݾհ ◆໊લ ླ ೭(Suzuki Takayuki) ◆ࣗݾհ ɾ1990ɺਆಸݝੜ·Εɻ ɾࣾձਓʹͳ͔ͬͯΒɺϓϩάϥϛϯάΛ࢝ΊΔɻ ɾ2015ʹϑϧεϐʔυʹೖࣾ͠ɺ2017ʹϑϦʔϥ
ϯεΛͬͨޙʹ201711݄ʹԭೄͰىۀɻ ◆झຯ ίεϓϨɺԻָϥΠϒɺϚϥιϯେձʹग़Δɺٿ؍ ઓ ◆Twitter @kanbo0605
5 ࣗݾհ 7/13ʹLaravel ΧϯϑΝϨϯε Ͱొஃ͖ͯ͠·ͨ͠ʂ ৄͪ͘͜͠Β https://dev.re-build.company/ entry/2019/07/23/193108
Copyright Re:Build.inc All Rights Reserved. 1.ձࣾհ ◆ձ໊ࣾ גࣜձࣾRe:Build ◆ॅॴ ԭೄݝԭೄࢢதԝ̍ஸ̍̒−̕
◆ࣄۀ༰ ɾࣗࣾWEBαʔϏεͷاըɾ։ൃɻ ɾडୗ։ൃ ◆ࣾһ 6໊ ◆ΤϯδχΞͷಇ͖ํ ϦϞʔτϫʔΫՄೳͳࣗ༝ͳಇ͖ํΛਪͯ͠·͢ʂ
2 Auth0ͱ
8 ͜ͷࢿྉʹ͍ͭͯ https://speakerdeck.com/bumptakayuki/laravel-plus-auth0-plus-stripe-deecsaitowozuo-tutemita Ҏલɺൃදͨ͠༰ʹ ͚Ճ͑ͨͷͰ͢ʂ
9 ରऀ ɾAuth0ͷಋೖΛݕ౼͍ͯ͠Δํ ɾೝূج൫ͷ࣮ʹΜͰ͍Δํ ɾLaravelͰAuth0Λ࣮ͯ͠Έ͍ͨํ
1 0 Auth0ͱ ɾ֓ཁ Auth0WebΞϓϦϞόΠϧɺAPIͳͲ ʹରͯ͠ೝূɾೝՄͷαʔϏεΛΫϥυ Ͱఏڙ͍ͯ͠Δɺ͍ΘΏΔIDaaS (Identity as a
Service)ϕϯμʔͰ͢ɻ ɾΦεεϝͷํ اۀ͕ͭWebΞϓϦέʔγϣϯAPI, Native Mobile AppͳͲͰϢʔβʔೝূ ೝՄɺηΩϡϦςΟΛΈࠐΈ͍͚ͨΕ Ͳ࣮͕͍͠ɻ https://qiita.com/furuth/items/8826b66a3ec2b2b14222
11 ֤ݴޠ͝ͱͰνϡʔ τϦΞϧ͕ॆ࣮ͯ͠ ͓Γɺ؆୯ʹಋೖͰ ͖·͢ɻ ओཁͳSNSͱ΄ͱΜͲ࿈ ܞ͓ͯ͠Γɺ࿈ܞํ๏ ؆୯ͰศརͰ͢ɻ μογϡϘʔυͰͲͷSNS͔ ΒϩάΠϯ͕͋Δ͔֬ೝͰ͖
Δ ؆୯ʹಋೖͰ͖Δ ϢʔβೝূΛҰݩཧͰ ͖Δ ϝϦοτɾಛ ๛ͳ࿈ܞઌ 2 ʙϝϦοτʙ 1 3
1 2 ๛ͳ࿈ܞઌ Auth0ͱ
1 3 ϢʔβΛҰݩཧ Auth0ͱ
1 4 ෳͷσόΠεʹରԠ Auth0ͱ
1 5 ྉۚମܥ https://auth0.com/pricing
3 LaravelͰͷ࣮ํ๏
ΞϓϦέʔγϣϯ ϩάΠϯ͔Βܾࡁ·ͰͷྲྀΕ /index TOPϖʔδ ৄࡉϖʔδભҠ ࣌ʹϩάΠϯ ϩάΠϯޭͨ͠Β ηογϣϯLaravelଆ Ͱཧ ೝূ
ܾࡁ ߪೖ͔Βܾࡁը໘
1 8 ެࣜͷAuth0ͷLaravelνϡʔτϦΞϧ https://auth0.com/docs/quickstart/webapp/laravel/01-login
1 9 खॱ ᶃAuth0ͷཧը໘ͰΞϓϦέʔγϣϯͷઃఆΛߦ͏ɻ ᶄLaravelΛΠϯετʔϧ ᶅcomposer require auth0/login:”~5.0" Λ࣮ߦ ᶆLoginServiceProviderΛઃఆ
ᶇphp artisan vendor:publishΛ࣮ߦ ᶈ.envΛฤू ᶉroutes/api.phpΛฤू ᶊίϯτϩʔϥΛ࡞ ᶋconfig/auth.phpΛฤू ᶌbladeϑΝΠϧΛฤू
2 0 ᶃAuth0ͷཧը໘ͰΞϓϦέʔγϣϯͷઃఆΛߦ͏ɻ
2 1 ᶄLaravelΛΠϯετʔϧ https://readouble.com/laravel/5.5/ja/installation.html
2 2 ᶅcomposer require auth0/login:”~5.0" Λ࣮ߦ Auth0ϓϥάΠϯΛΠϯετʔϧ Πϯετʔϧ͕ྃ͢Δͱɺ2ͭͷϓϥάΠϯ͕Ճ͞ΕΔɻ vendor\auth0\auth0-php vendor\auth0\login
2 3 ᶆLoginServiceProviderΛઃఆ config/app.phpΛฤू ԼهΛՃ
2 4 ᶆLoginServiceProviderΛઃఆ AppServiceProvider .phpΛฤू ԼهΛՃ
2 5 ᶇphp artisan vendor:publishΛ࣮ߦ ྃ͢Δͱɺconfig/laravel-auth0.php͕࡞͞Εɺ σϑΥϧτͷઃఆϑΝΠϧ͕ެ։͞Ε·ͨ͠ɻ
2 6 ᶈ.envΛฤू ઌ΄Ͳ࡞ͨ͠ΞϓϦέʔγϣϯʹهࡌ͞Ε͍ͯΔυϝΠϯ,ID,ύε ϫʔυΛLaravelΞϓϦέʔγϣϯͷ.envʹՃ͠·͢ɻ
2 7 ᶉroutes/api.phpΛฤू
2 8 ᶊίϯτϩʔϥΛ࡞
2 9 ᶋconfig/auth.phpΛฤू ೝূํ๏ΛAuth0ʹมߋ
3 0 ᶌbladeϑΝΠϧΛฤू
3 1 Auth0ͷRuleͱʁ ϧʔϧɺϢʔβʔ͕ΞϓϦέʔγϣϯΛೝূ͢ Δͱ͖ʹ࣮ߦ͞ΕΔJavaScriptؔͰ͢ɻ ͜ΕΒɺೝূϓϩηε͕ྃ͢Δͱ࣮ߦ͞Εɺ Auth0ͷػೳΛΧελϚΠζ͓Αͼ֦ு͢ΔͨΊ ʹ༻Ͱ͖·͢ɻ ηΩϡϦςΟ্ͷཧ༝͔Βɺϧʔϧίʔυɺα ϯυϘοΫεͷଞͷAuth0ςφϯτͷίʔυ͔
Β࣮ͯ͠ߦ͞Ε·͢ɻ https://auth0.com/docs/rules
3 2 Auth0ͷRuleͷྫ ɾෳࡶͳϩδοΫʢJavaScriptͰهड़Ͱ͖Δͷʣʹج͍ͮͯঝೝϧʔϧΛ࡞ ɾϗϫΠτϦετΛ࡞Ͱ͖ɺిࢠϝʔϧͷ༰ʹج͍ͮͯΞΫηεΛڋ൱ ɾϩάΠϯ͕ϦΞϧλΠϜͰൃੜͨ͠߹ɺAPIΛհͯ͠ଞͷγεςϜ(Slack ͳͲ)ʹ௨ ͳͲ https://auth0.com/docs/rules
3 3 RuleͷՃ RuleΛ৽ن࡞
3 4 RuleͷՃ ෳͷύλʔϯͷRule͕ ࣄલʹ༻ҙ͞Ε͍ͯΔ
3 5 RuleͷՃ RuleͰ༻͢Δڥม ઃఆͰ͖Δ
3 6 Ruleͷྫ MFA(ೋஈ֊ೝূ)ͷઃఆ ؆୯ʹͰ͖Δʂ
3 7 Ruleͷྫ Ϣʔβʔ͕αΠϯΞοϓ͢Δ ͨͼʹεϥοΫνϟωϧʹϝο ηʔδΛૹ৴͠·͢ɻ
3 8 Ruleͷྫ ϝʔϧΞυϨεͷυϝΠϯʹ ΑΔ੍ݶ
3 9 Ruleͷྫ ϢʔβใΦϒδΣΫτ͔ Βࡉ͔͘औಘͰ͖Δ https://auth0.com/docs/rules/references/user-object
WWW.SITE2MAX.PRO Free PowerPoint & KeyNote Templates 4 DEMO EC Site
EC Site https://murmuring-tor-53965.herokuapp.com/
4 1 ࣮ࡍʹಈ͔͢
4 2 ࣮ࡍʹಈ͔͢ ࠓճGoogleɺFacebookɺ TwitterɺGithubʹରԠ
4 3 ࣮ࡍʹಈ͔͢
4 4 ࣮ࡍʹಈ͔͢ MFA(ೋஈ֊ೝূ)ͷը໘
4 5 ࣮ࡍʹಈ͔͢
4 6 ࣮ࡍʹಈ͔͢
4 7 ࣮ͯ͠Έͨײ(ओ؍) ɾ࣮͕͘͢͝؆୯ʹͰ͖ͨ(2͘Β͍ͰECαΠτ͕) ɾҰɺ࣮ͯ͠͠·͑ɺSNSͷ࿈ܞઌ૿͢ͷϘλϯΛ ϙνϙν͢Δ͚ͩͰOKʂ ɾηΩϡϦςΟͷ୲อAuth0ଆ͕୲อͯ͘͠ΕΔ ɾΞΫςΟϒϢʔβʹΑͬͯ՝ۚ͞ΕΔͷͰɺ࠷ॳίε τͰ͑ͯٸ֦େ͢ΔΑ͏ͳελʔτΞοϓاۀͩͱ͍͍ͯ Δ͔͠Εͳ͍ɻ
4 8 ࢀߟ https://qiita.com/furuth/items/8826b66a3ec2b2b14222 https://dev.classmethod.jp/cloud/auth0-overview/ https://www.hypertextcandy.com/laravel-tried-auth0
4 9 ࠂ 10/12 PHPΧϯϑΝϨϯεԭೄ։࠵͠·͢ʂ https://phpcon.okinawa.jp