Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
全員がOAuth 2.0を理解しているチームの作り方
Search
inaba jun
October 07, 2021
Programming
15k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
全員がOAuth 2.0を理解しているチームの作り方
チームにOAuth 2.0というプロトコルを根付かせるためにやってきたことについて話します(OAuth 2.0自体の話はしません)
inaba jun
October 07, 2021
Transcript
79 slides
QSJTNBUJYࣄۀ෦Ҵ༿७ શһ͕0"VUIΛཧղ͍ͯ͠ΔνʔϜͷ࡞Γํ
ҙ ҙ
ҙ ͜ͷηογϣϯΛฉ͍ͯ OAuth 2.0 ͕ͳΜͳͷ͔ Θ͔Γ·ͤΜ
ҙ OAuth 2.0 ͕ͳΜͳͷ͔ Θ͔ΔਓΛνʔϜʹ Ͳ͏૿͔͢ɺͷͰ͢
ҙ ͜ͷηογϣϯΛฉ͍ͯ OAuth 2.0 ͕ͳΜͳͷ͔ Θ͔Γ·ͤΜ
ࣗݾհ Ҵ༿७ !JOBCBKVONSʣ #BSJTUBͱ͍͏*E1Λ࡞͍ͬͯ·͢ɻ https://classmethod.jp/news/openid-connect-oauth20-barista/
ͳͥ ͳͥਓྨ OAuth 2.0 ʹ ೖ͠ଓ͚Δͷ͔
ͳͥ γʔέϯε ΤϯυϢʔβʔ ʢϦιʔεΦʔφʔʣ ϑΝʔετύʔςΟΞϓϦ ʢϦιʔεαʔόʔʣ ೝՄαʔόʔ αʔυύʔςΟΞϓϦ ʢΫϥΠΞϯτʣ
ೝՄίʔυάϥϯτ ɹɹ͍͔͠Β
·ͱΊ w0"VUIͷ͠·ͤΜ w0"VUIΘ͔ΔνʔϜษڧձͰ࡞ΕΔ w"VUI͞Μಉਓࢽ͓͢͢Ί wγʔέϯεΛॻ͘ԋशΛೖΕΔͱྑ͍ͱࢥ͏ wγʔέϯε͕಄ʹೖͬͯΔͱ͍ΖΜͳͷͷཧղ͕ૣ͍ w༷ಡΊΔϝϯόʔɺษڧձͰ࡞ΕΔ w༷ɺಡΉͷʹ༐ؾ͕͍Δ͚ͩͰಡΊಡΊΔ wॿͱͯ͠ษڧձΛΔ
ษڧձͷഎܠ Barista νʔϜͷΈ
ษڧձͷഎܠ मਖ਼ˠPR→ϨϏϡʔ→Ϛʔδ
ษڧձͷഎܠ ϨϏϡʔ͕͋Δ
ษڧձͷഎܠ ίʔυಡΊΔ
ษڧձͷഎܠ ༷ʁ
ษڧձͷഎܠ ͦͷίʔυ༷௨Γʹಈ͘ͷ͔
ษڧձͷഎܠ ༷͕Θ͔Βͳ͍ͱϨϏϡʔͰ͖ͳ͍
ษڧձͷഎܠ ༷͕Θ͔ΔɺಡΊΔϝϯόʔΛ૿͍ͨ͠
ษڧձͷഎܠ ษڧձ͢Δ͔
ษڧձ ษڧձΛ͍ͬͯΔ wงғؾͰ0"VUIΛ͍ͬͯΔΤϯδχΞ͕0"VUIΛཧͯ͠ɺख Λಈ͔͠ͳ͕ΒֶΔຊ w0"VUIɺ0"VUIೝূɺ0QFO*%$POOFDUͷҧ͍Λཧͯ͠ཧղͰ͖Δຊ w5IF0"VUI"VUIPSJ[BUJPO'SBNFXPSL 3'$ w0"VUI5PLFO*OUSPTQFDUJPO
3'$ wʲ/08ʳ0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖ΔຊʢϦμ ΠϨΫτͷ߈ܸฤ
ษڧձ Ͳ͏͔ͬͨ Ͳ͏ΔͱΑͦ͞͏͔ Έ͍ͨͳΛ͠·͢
0"VUI෮श OAuth 2.0 ෮श
0"VUI෮श ͜ΕΛ͍ͨ͠ 4/4 ͓ֆ͔͖ΞϓϦ ΤϯυϢʔβʔ ͓ֆඳ͖ͯ͠ ߘ ΤϯυϢʔβʔͷΘΓʹ ը૾Λߘ
0"VUI෮श ͜ΕΛ͍ͨ͠ ը૾ߘΞϓϦ ͓ֆ͔͖ΞϓϦ ΤϯυϢʔβʔ ͓ֆඳ͖ͯ͠ ߘ ΤϯυϢʔβʔͷΘΓʹ ը૾Λߘ
αʔυύʔςΟ ϑΝʔετύʔςΟ αʔυύʔςΟ->ϑΝʔετύʔςΟ
0"VUI෮श ͜Εͨ͘͠ͳ͍ ը૾ߘΞϓϦ ͓ֆ͔͖ΞϓϦ ΤϯυϢʔβʔ ը૾ߘΞϓϦͷ *%ύεϫʔυ *%ύεϫʔυΛͬͯ ΤϯυϢʔβʔͷΘΓʹ
ը૾Λߘ
0"VUI෮श 0"VUIͩͱ ϑΝʔετύʔςΟΞϓϦέʔγϣϯ ʢϦιʔεαʔόʔʣ αʔυύʔςΟΞϓϦέʔγϣϯ ʢΫϥΠΞϯτʣ ΤϯυϢʔβʔ ೝՄαʔόʔ αʔυύʔςΟ͔Β
ϑΝʔετύʔςΟͷ ΞΫηεΛڐՄ ΞΫηετʔΫϯ "1*ϦΫΤετ XJUIΞΫηετʔΫϯ
0"VUI෮श 0"VUIͩͱ ϑΝʔετύʔςΟΞϓϦέʔγϣϯ ʢϦιʔεαʔόʔʣ αʔυύʔςΟΞϓϦέʔγϣϯ ʢΫϥΠΞϯτʣ ΤϯυϢʔβʔ ೝՄαʔόʔ αʔυύʔςΟ͔Β
ϑΝʔετύʔςΟͷ ΞΫηεΛڐՄ ΞΫηετʔΫϯ "1*ϦΫΤετ XJUIΞΫηετʔΫϯ Barista νʔϜ ͜ΕΛ࡞͍ͬͯ·͢
0"VUI෮श γʔέϯε ΤϯυϢʔβʔ ʢϦιʔεΦʔφʔʣ ϑΝʔετύʔςΟΞϓϦ ʢϦιʔεαʔόʔʣ ೝՄαʔόʔ αʔυύʔςΟΞϓϦ ʢΫϥΠΞϯτʣ
ೝՄίʔυάϥϯτ
0"VUI෮श γʔέϯε ΤϯυϢʔβʔ ʢϦιʔεΦʔφʔʣ ϑΝʔετύʔςΟΞϓϦ ʢϦιʔεαʔόʔʣ ೝՄαʔόʔ αʔυύʔςΟΞϓϦ ʢΫϥΠΞϯτʣ
ೝՄίʔυάϥϯτ ·͋·͍͋͜͠
0"VUI෮श γʔέϯε ΤϯυϢʔβʔ ʢϦιʔεΦʔφʔʣ ϑΝʔετύʔςΟΞϓϦ ʢϦιʔεαʔόʔʣ ೝՄαʔόʔ αʔυύʔςΟΞϓϦ ʢΫϥΠΞϯτʣ
ೝՄίʔυάϥϯτ ·ͣ͜ΕΛ ಄ʹ͍Ε͍ͨ
0"VUI෮श γʔέϯε ΤϯυϢʔβʔ ʢϦιʔεΦʔφʔʣ ϑΝʔετύʔςΟΞϓϦ ʢϦιʔεαʔόʔʣ ೝՄαʔόʔ αʔυύʔςΟΞϓϦ ʢΫϥΠΞϯτʣ
ೝՄίʔυάϥϯτ ϩʔϧͱγʔέϯε͕ ಄ʹೖͬͯͳ͍ͱࠞཚ ͢Δ
0"VUI෮श ͳͥਓྨ OAuth 2.0 ʹ ೖ͠ଓ͚Δͷ͔
0"VUI෮श γʔέϯε ΤϯυϢʔβʔ ʢϦιʔεΦʔφʔʣ ϑΝʔετύʔςΟΞϓϦ ʢϦιʔεαʔόʔʣ ೝՄαʔόʔ αʔυύʔςΟΞϓϦ ʢΫϥΠΞϯτʣ
ೝՄίʔυάϥϯτ ɹɹ͍͔͠Β
0"VUI෮श Ұճઆ໌͞Εͯ Θ͔Γ·ͨ͠ʂΈ͍ͨͳΓํɺ ଟ૬ੑ͕͋Μ·ΓΑ͘ͳ͍
ษڧձ ษڧձΛΔ
ษڧձ ΰʔϧ w֤ϩʔϧΛઆ໌Ͱ͖Δ w֤άϥϯτλΠϓͷγʔέϯεΛ͔͚Δ wTUBUFԿʁͱ͔ΠϯϓϦγοτάϥϯτͰ0"VUIೝূʁΛ ͢ΔͱͲ͏ͳΔ͔ʁͱ͔ͦͷΜ͕આ໌Ͱ͖Δ wؔ࿈༷ΛಡΊΔɺಡΈͳ͕Β࣮Ͱ͖Δ
ษڧձ ษڧձͷϧʔϧ wΘ͔Βͳ͍ͱ͜Ζ͕͋ΕྠಡΛःͬͯϦΞϧλΠϜʹฉ͍ ͯྑ͍ wಡΜͰΔຊਓ͕Θ͔Βͳ͘ͳͬͨΒಡΉͷΛΊͯฉ͘
ษڧձ ͬͨॻ੶
ษڧձ Auth ͞Μಉਓࢽ
ษڧձ ಉਓࢽ wงғؾͰ0"VUIΛ͍ͬͯΔΤϯδχΞ͕0"VUIΛ ཧͯ͠ɺखΛಈ͔͠ͳ͕ΒֶΔຊ w0"VUIɺ0"VUIೝূɺ0QFO*%$POOFDUͷҧ͍Λཧͯ͠ ཧղͰ͖Δຊ wʲ/08ʳ0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖ ΔຊʢϦμΠϨΫτͷ߈ܸฤ
ษڧձ งғؾͰOAuth2.0Λ͍ͬͯΔΤϯδχΞ͕ OAuth2.0Λཧͯ͠ɺखΛಈ͔͠ͳ͕Βֶ Δຊ
ษڧձ งғؾͰ0"VUIΛ͍ͬͯΔΤϯδχΞ͕ 0"VUIΛཧͯ͠ɺखΛಈ͔͠ͳ͕ΒֶΔຊ wͦͦͳΜͳͷ͔ w֤ϩʔϧͳΜͳͷ͔ wάϥϯτλΠϓʹ͍ͭͯ w࣮ࡍʹͬͯΈΔ
ษڧձ งғؾͰ0"VUIΛ͍ͬͯΔΤϯδχΞ͕ 0"VUIΛཧͯ͠ɺखΛಈ͔͠ͳ͕ΒֶΔຊ งғؾͰOAuth2.0Λ͍ͬͯΔΤϯδχΞ͕ OAuth2.0Λཧͯ͠ɺ खΛಈ͔͠ͳ͕ΒֶΔຊ P. 30ΑΓ
ษڧձ งғؾͰ0"VUIΛ͍ͬͯΔΤϯδχΞ͕ 0"VUIΛཧͯ͠ɺखΛಈ͔͠ͳ͕ΒֶΔຊ wαΫοͱಡΊΔ wಡॻձͱ૬ੑ͕ྑ͍
ษڧձ งғؾͰ0"VUIΛ͍ͬͯΔΤϯδχΞ͕0"VUIΛཧ ͯ͠ɺखΛಈ͔͠ͳ͕ΒֶΔຊ wճ࣌ؒΛिճʢࢀՃऀਓʣ wશճʢ࣌ؒɺϲ݄ؒʣͰ w༧शෆཁɾͦͷͰճ͠ಡΈ wݪଇશһࢀՃɺࢀՃͰ͖ͳ͍ਓ͕͍ͨ࣌εΩοϓ wγʔέϯεΛॻ͖·͘Δ wIUUQTEFWDMBTTNFUIPEKQBSUJDMFTPBVUICFOLZPVLBJ
ษڧձ งғؾͰ0"VUIΛ͍ͬͯΔΤϯδχΞ͕0"VUIΛཧ ͯ͠ɺखΛಈ͔͠ͳ͕ΒֶΔຊ wճ࣌ؒΛिճʢࢀՃऀਓʣ wશճʢ࣌ؒɺϲ݄ؒʣͰ w༧शෆཁɾͦͷͰճ͠ಡΈ wݪଇશһࢀՃɺࢀՃͰ͖ͳ͍ਓ͕͍ͨ࣌εΩοϓ wγʔέϯεΛॻ͖·͘Δ wIUUQTEFWDMBTTNFUIPEKQBSUJDMFTPBVUICFOLZPVLBJ
ษڧձ γʔέϯεॻ͖·͘Δ wڞ༗Ͱ͓ֆඳ͖Ͱ͖ΔπʔϧΛ͏ w.JSPͱ$BDPPΛͬͨ wςΩετͰֶͿˠγʔέϯεॻ͖ͳ͕Βઆ໌ɺΛͻͨ͢Β܁ Γฦ͢
ษڧձ γʔέϯεॻ͖·͘Δ
ษڧձ OAuthɺOAuthೝূɺOpenID Connectͷҧ ͍Λཧͯ͠ཧղͰ͖Δຊ
ษڧձ 0"VUIɺ0"VUIೝূɺ0QFO*%$POOFDUͷҧ͍Λ ཧͯ͠ཧղͰ͖Δຊ w0"VUIͰೝূ͢Δɺͱ w0*%$ͱ w֤ϑϩʔʹ͍ͭͯ w࣮ࡍʹͬͯΈΔ
ษڧձ 0"VUIɺ0"VUIೝূɺ0QFO*%$POOFDUͷҧ͍Λཧ ͯ͠ཧղͰ͖Δຊ wճ࣌ؒΛिճ wશճʢ࣌ؒɺϲ݄ؒʣͰ w༧शෆཁɾͦͷͰճ͠ಡΈ wݪଇશһࢀՃɺࢀՃͰ͖ͳ͍ਓ͕͍ͨ࣌εΩοϓ wγʔέϯεΛॻ͖·͘Δ
ษڧձ OAuthɾOIDCͷ߈ܸͱରࡦΛཧͯ͠ཧղ Ͱ͖ΔຊʢϦμΠϨΫτͷ߈ܸฤ
ษڧձ 0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖Δຊ ʢϦμΠϨΫτͷ߈ܸฤ͍ΖΜͳ߈ܸͷख๏ͱରࡦ wطͷ߈ܸͷղઆ w֤߈ܸʹͲ͏ରԠ͢Δ͔
ษڧձ 0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖Δຊ ʢϦμΠϨΫτͷ߈ܸฤ͍ΖΜͳ߈ܸͷख๏ͱରࡦ wֶΜͩ߈ܸΛγʔέϯεΛॻ͖ͳ͕Βઆ໌ wࣾαʔϏεΛ߈ܸ
ษڧձ 0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖Δຊ ʢϦμΠϨΫτͷ߈ܸฤ͍ΖΜͳ߈ܸͷख๏ͱରࡦ wֶΜͩ߈ܸΛγʔέϯεΛॻ͖ͳ͕Βઆ໌ wࣾαʔϏεΛ߈ܸ
ษڧձ 0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖Δຊ ʢϦμΠϨΫτͷ߈ܸฤ͍ΖΜͳ߈ܸͷख๏ͱରࡦ wษڧձޙϦϦʔε͞ΕͨࣾͷϓϩμΫτΛோΊΔਓ
ษڧձ 0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖Δຊ ʢϦμΠϨΫτͷ߈ܸฤ͍ΖΜͳ߈ܸͷख๏ͱରࡦ wษڧձޙϦϦʔε͞ΕͨࣾͷϓϩμΫτΛோΊΔਓ
ษڧձ 0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖Δຊ ʢϦμΠϨΫτͷ߈ܸฤ͍ΖΜͳ߈ܸͷख๏ͱରࡦ wͬͯΈΔਫ਼ਆ
ษڧձ 0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖Δຊ ʢϦμΠϨΫτͷ߈ܸฤ͍ΖΜͳ߈ܸͷख๏ͱରࡦ w·Δݟ
ษڧձ 0"VUIɾ0*%$ͷ߈ܸͱରࡦΛཧͯ͠ཧղͰ͖Δຊ ʢϦμΠϨΫτͷ߈ܸฤ͍ΖΜͳ߈ܸͷख๏ͱରࡦ wֶΜͩݟΛ w͙࣮͢ફͯ͠ wษڧձͷ֎ʹݟΛΊΔ
ษڧձ ΰʔϧ w֤ϩʔϧΛઆ໌Ͱ͖Δ w֤άϥϯτλΠϓͷγʔέϯεΛ͔͚Δ wTUBUFԿʁͱ͔ΠϯϓϦγοτάϥϯτͰ0"VUIೝূʁΛ ͢ΔͱͲ͏ͳΔ͔ʁͱ͔ͦͷΜ͕આ໌Ͱ͖Δ wؔ࿈༷ΛಡΊΔɺಡΈͳ͕Β࣮Ͱ͖Δ
ษڧձ ΰʔϧ w֤ϩʔϧΛઆ໌Ͱ͖Δ w֤άϥϯτλΠϓͷγʔέϯεΛ͔͚Δ wTUBUFԿʁͱ͔ΠϯϓϦγοτάϥϯτͰ0"VUIೝূʁΛ ͢ΔͱͲ͏ͳΔ͔ʁͱ͔ͦͷΜ͕આ໌Ͱ͖Δ wؔ࿈༷ΛಡΊΔɺಡΈͳ͕Β࣮Ͱ͖Δ
ษڧձ ΰʔϧ w֤ϩʔϧΛઆ໌Ͱ͖Δ w֤άϥϯτλΠϓͷγʔέϯεΛ͔͚Δ wTUBUFԿʁͱ͔ΠϯϓϦγοτάϥϯτͰ0"VUIೝূʁΛ ͢ΔͱͲ͏ͳΔ͔ʁͱ͔ͦͷΜ͕આ໌Ͱ͖Δ wؔ࿈༷ΛಡΊΔɺಡΈͳ͕Β࣮Ͱ͖Δ ͜ΕΛͲ͏͢Δ͔
ษڧձ ༷ಡΊΔਓ૿͍ͨ͠
ษڧձ ༷ΛಡΜͩ͜ͱ͋ΔਓΛ૿͢
ษڧձ ༷ΛಡΉձ
ษڧձ Կ͔ΒಡΉʁ
ษڧձ ༷ΛಡΉձ w͜ͷྲྀΕͰΔͳΒͱΓ͋͑ͣ3'$ 5IF0"VUI"VUIPSJ[BUJPO'SBNFXPSL wཧղ͢Δ͜ͱΑΓಡΜͰΈΔ͜ͱ͕ϝΠϯ wͦͷଞʹࣗୡʹؔ࿈͢Δ͔ͭΒಡΉͷ͕ྑ͍ͱࢥ͏ wྫ͑ೝՄαʔόʔ࡞ͬͯΔਓͨͪͳΒ࣮ࡁΈͷ༷ͱ͔ wτʔΫϯ͕+85ͳΒ+85
3'$ ͱ͔ w*OUSPTQFDUJPOͯ͠ΔͳΒ*OUSPTQFDUJPO 3'$ ͱ͔ wΫϥΠΞϯτ࡞ͬͯΔਓͨͪͳΒͬͯΔೝՄαʔόʔ͕࣮ͯ͠Δͭͱ͔ʢଟυ ΩϡϝϯτʹͳΜ͔ॻ͍ͯ͋Δͣʣ
ษڧձ ༷ΛಡΉձ w3'$ 5IF0"VUI"VUIPSJ[BUJPO'SBNFXPSL w͍͖ͳΓಡΉͱ͚ͬ͜͏େม w͕ɺ͜͜·ͰͷษڧձΛ౿·͍͑ͯΕ͍͚Δͣ w0QFO*%'PVOEBUJPO+BQBOʹΑΔຊޠ༁͕͋Δ
ษڧձ ༷ΛಡΉձ wষΛܾΊͯ͜͜·ͰಡΜͩΒ։࠵ɺํࣜʹͨ͠ w݁Ռɺਐ·ͣ wࠓࢥ͑ू·ͬͯΈΜͳͰಡΉɺͰྑ͔ͬͨ wͦͷͷٞͰ৽͍͠ൃݟ͕͋Δ
ษڧձ ༷ΛಡΉձ wҧ͏ΞϓϦέʔγϣϯҧ͏ϩʔϧΛ։ൃ͍ͯ͠ΔਓΛ༠͏ ͱྑ͍ w41"ͷਓͱ͔εϚϗΞϓϦͷਓͱ͔31ͱ͔*E1ͱ͔34ͱ͔
ษڧձ ༷ΛಡΉձ w3'$ಡΜͩ͜ͱແ͍ਓʹࢀՃͯ͠Β͏ͱྑ͍ w3'$ɺಡ͏ͱࢥ͑ಡΊΔ͡ΌΜɺΛײͯ͡Β͏ w݁Ռɺҙ֎ͱಡΊΔ wୡײ͕͋Δ
ษڧձ ͍ͣΕʹͤΑγʔέϯεॻ͖·͘Δ
ษڧձ ͦͷޙ w3'$ 0"VUI5PLFO*OUSPTQFDUJPO wӳޠͰͬͯΈͨ wͳΜͱ͔ͳΔ wͳΜͱ͔ͳͬͨ wୡײ͕͋Δ
ษڧձ ΰʔϧ w֤ϩʔϧΛઆ໌Ͱ͖Δ w֤άϥϯτλΠϓͷγʔέϯεΛ͔͚Δ wTUBUFԿʁͱ͔ΠϯϓϦγοτάϥϯτͰ0"VUIೝূʁΛ ͢ΔͱͲ͏ͳΔ͔ʁͱ͔ͦͷΜ͕આ໌Ͱ͖Δ wؔ࿈༷ΛಡΊΔɺಡΈͳ͕Β࣮Ͱ͖Δ
·ͱΊ ·ͱΊ
·ͱΊ w0"VUIΘ͔ΔνʔϜษڧձͰ࡞ΕΔ w"VUI͞Μಉਓࢽ͓͢͢Ί wγʔέϯεΛॻ͘ԋशΛೖΕΔͱྑ͍ͱࢥ͏ wγʔέϯε͕಄ʹೖͬͯΔͱ͍ΖΜͳͷͷཧղ͕ૣ͍ w༷ಡΊΔϝϯόʔɺษڧձͰ࡞ΕΔ w༷ɺಡΉͷʹ༐ؾ͕͍Δ͚ͩͰಡΊಡΊΔ wॿͱͯ͠ษڧձΛΔ
ษڧձ https://prismatix.jp/recruit/
ษڧձ https://prismatix.jp/recruit/ ษڧձ ʢʣ
ηογϣϯޙɺνϟοτཝͷURLɺ·ͨԼهQRίʔυΑΓ Ξϯέʔτͷ͝ڠྗΛ͓ئ͍͍ͨ͠·͢ɻ SNSߘʹͪ͜ΒΛ͓͍͍ͩ͘͞ɿ#devio2021 https://forms.gle/Sm6FCXbDmVQXUJ7m6 14:35-15:0 5 ʮશһ͕OAuth 2.0Λཧղ͍ͯ͠ΔνʔϜͷ࡞Γํʯ Q&A Q&A
Other Decks in Programming
See All in Programming
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
160
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
250
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
ローカルLLMの基本と近況 2611 / Local LLM basics and recent situation 2611
kishida
0
170
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
170
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
Railsバージョンを4倍にした話
optim
0
1k
オーケストレーション記述言語 Katari
yukikurage
0
250
LLM 101
dalinaum
0
480
仕様駆動開発入門 (何を作るかを先に決めて渡す) | 目指せ Kiro マスター 05
inariku
PRO
2
130
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
560
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
380
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
990
Google's AI Overviews - The New Search
badams
0
1.7k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
First, design no harm
axbom
PRO
2
1.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7.1k
Statistics for Hackers
jakevdp
799
230k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
320
Practical Orchestrator
shlominoach
192
12k