Laravel + Auth0で複数のSNS認証を簡単に実現
Laravel + Auth0ͰෳͷSNSೝূΛ؆୯ʹ࣮ݱLaravel + Auth0ͰෳͷSNSೝূΛ؆୯ʹ࣮ݱ
View Slide
3 LaravelͰͷ࣮ํ๏Agenda2 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 0Auth0ͱɾ֓ཁAuth0WebΞϓϦϞόΠϧɺAPIͳͲʹରͯ͠ೝূɾೝՄͷαʔϏεΛΫϥυͰఏڙ͍ͯ͠Δɺ͍ΘΏΔIDaaS (Identityas 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Ͱͷ࣮ํ๏
ΞϓϦέʔγϣϯϩάΠϯ͔Βܾࡁ·ͰͷྲྀΕ/indexTOPϖʔδ ৄࡉϖʔδભҠ࣌ʹϩάΠϯϩάΠϯޭͨ͠Βηογϣϯ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-phpvendor\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 1Auth0ͷRuleͱʁϧʔϧɺϢʔβʔ͕ΞϓϦέʔγϣϯΛೝূ͢Δͱ͖ʹ࣮ߦ͞ΕΔJavaScriptؔͰ͢ɻ͜ΕΒɺೝূϓϩηε͕ྃ͢Δͱ࣮ߦ͞ΕɺAuth0ͷػೳΛΧελϚΠζ͓Αͼ֦ு͢ΔͨΊʹ༻Ͱ͖·͢ɻηΩϡϦςΟ্ͷཧ༝͔ΒɺϧʔϧίʔυɺαϯυϘοΫεͷଞͷAuth0ςφϯτͷίʔυ͔Β࣮ͯ͠ߦ͞Ε·͢ɻhttps://auth0.com/docs/rules
3 2Auth0ͷRuleͷྫɾෳࡶͳϩδοΫʢJavaScriptͰهड़Ͱ͖Δͷʣʹج͍ͮͯঝೝϧʔϧΛ࡞ɾϗϫΠτϦετΛ࡞Ͱ͖ɺిࢠϝʔϧͷ༰ʹج͍ͮͯΞΫηεΛڋ൱ɾϩάΠϯ͕ϦΞϧλΠϜͰൃੜͨ͠߹ɺAPIΛհͯ͠ଞͷγεςϜ(SlackͳͲ)ʹ௨ͳͲhttps://auth0.com/docs/rules
3 3RuleͷՃRuleΛ৽ن࡞
3 4RuleͷՃෳͷύλʔϯͷRule͕ࣄલʹ༻ҙ͞Ε͍ͯΔ
3 5RuleͷՃRuleͰ༻͢ΔڥมઃఆͰ͖Δ
3 6RuleͷྫMFA(ೋஈ֊ೝূ)ͷઃఆ؆୯ʹͰ͖Δʂ
3 7RuleͷྫϢʔβʔ͕αΠϯΞοϓ͢ΔͨͼʹεϥοΫνϟωϧʹϝοηʔδΛૹ৴͠·͢ɻ
3 8RuleͷྫϝʔϧΞυϨεͷυϝΠϯʹΑΔ੍ݶ
3 9RuleͷྫϢʔβใΦϒδΣΫτ͔Βࡉ͔͘औಘͰ͖Δhttps://auth0.com/docs/rules/references/user-object
WWW.SITE2MAX.PROFree PowerPoint & KeyNote Templates4 DEMOEC SiteEC Sitehttps://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/8826b66a3ec2b2b14222https://dev.classmethod.jp/cloud/auth0-overview/https://www.hypertextcandy.com/laravel-tried-auth0
4 9ࠂ10/12 PHPΧϯϑΝϨϯεԭೄ։࠵͠·͢ʂhttps://phpcon.okinawa.jp