Slide 1

Slide 1 text

"VUI͔Β࢝ΊΔ'JSFCBTFͷୈҰา 'VLVPLB'JSFCBTF !NBTTZVV

Slide 2

Slide 2 text

ࣗݾ঺հ ӹాɹ༞ีˏNBTTZVV 4FOUSFTFBV*OD αʔόʔαΠυ͔Β͋͛Τϯδχϟʔ UXJUUFS!NBTTZVV

Slide 3

Slide 3 text

ࠓ೔ͷ͓࿩͸ ΈΜͳେ޷͖Ϣʔβʔೝূʹ͍ͭͯ

Slide 4

Slide 4 text

'JSFCBTF"VUIFOUJDBUJPO • 'JSFCBTF͕ఏڙ͍ͯ͠ΔϢʔβʔೝূػೳ • ΞϓϦέʔγϣϯͷϢʔβʔΛ؆୯ʹೝূɾࣝผͯ͘͠ΕΔ • 4%,Λར༻͢Δ͔ɺ6*ϥΠϒϥϦʹΑΓ؆୯ʹ࣮૷͢Δ͜ͱ͕Մೳ • ༷ʑͳํ๏ͰͷೝূΛఏڙՄೳ • ϝʔϧΞυϨεʢˍύεϫʔυʣ • ి࿩൪߸ • 4/4ೝূʢ5XJUUFSɺ'BDFCPPLɺ(PPHMFɺ(JU)VCͳͲʣ • ύεϫʔυͳͲࣗલͷ%#ʹอଘ͠ͳ͍Ͱ͍͍ͷ͕ྑ͖ • ݸਓతʹҰ൪޷͖͔΋͠Εͳ͍αʔϏε

Slide 5

Slide 5 text

'JSFCBTF4%,"VUIFOUJDBUJPO • 4%,ͱͯ͠ఏڙ͞ΕΔೝূػೳΛඞཁʹԠͯࣗ͡લͰ૊ΈࠐΜͰ͍͘ελΠϧ • 6*ؚΊͯࣗલͰ࡞ΔͷͰɺطଘγεςϜʹ௥Ճ͢Δͱ͔ͳΒͬͪ͜ͷํ͕΍Γ΍͍͢ʁ • "OESPJEɺJ04ɺ8ʢ+4ʣͷଞɺ$΍6OJUZͰ΋ར༻Մೳ • ి࿩൪߸ೝূ͸$΍6OJUZΛআ͘ • 8ͰΑ͘ݟ͔͚Δ'JSFCBTF"VUIFOUJDBUJPO

Slide 6

Slide 6 text

'JSFCBTF6*"VUI • ެ͓ࣜ͢͢Ί • 6*ΛؚΊͨೝূػೳΛఏڙ • 6*΋ఏڙͯ͘͠ΕΔͷͰϩάΠϯपΓͷॲཧΛ·Δͬͱ'JSFCBTFʹ೚ͤΔ͜ͱ͕Ͱ͖Δ • (JU)VCʢ8FC༻ϦϙδτϦɾσϞϖʔδʣ • IUUQTHJUIVCDPNGJSFCBTFGJSFCBTFVJXFC • IUUQTGJSVJEFNPBDGJSFCBTFBQQDPN • ެࣜʹ͸"OESPJEɺJ04ɺ8ʢ+4ʣͰར༻Մೳͱ͍ͯ͠Δ • 3FBDU΍"OHVMBS༻ʹϥοϓ͞ΕͨϦϙδτϦ΋͋ͬͨΓ

Slide 7

Slide 7 text

8ͷ"VUIΛࢼͯ͠ΈΔ

Slide 8

Slide 8 text

ͳʹΛ͢Δ͔ • 7VFKTͰϩάΠϯ͢Δ͚ͩͷը໘Λͭ͘Δ • &NBJM • 5XJUUFSΞΧ΢ϯτ • (PPHMFΞΧ΢ϯτ • ϩάΠϯϢʔβʔͷ৘ใ͸4/4ͷొ࿥৘ใ͕͋Ε͹ͦͪΒΛར༻͢Δ

Slide 9

Slide 9 text

'JSFCBTFͷઃఆ • ϓϩδΣΫτΛ࡞Δ • ίϯιʔϧ͔Β৽͍͠ϓϩδΣΫτΛ௥Ճ • ΞϓϦʹεχϖοτΛίϐϖͯ͠'JSFCBTFΛ௥Ճ • ϩάΠϯํ๏Λઃఆ • ࠓճ͸&NBJMɺ5XJUUFSɺ(PPHMFΛ༗ޮԽ • ࣄલʹ5XJUUFS"QQΛ࡞੒͓ͯ͘͠

Slide 10

Slide 10 text

5XJUUFSઃఆͷิ଍ 5XJUUFS"QQͷΩʔ ৘ใΛ͜͜ʹొ࿥ ͜ͷίʔϧόοΫ 63-͸5XJUUFS"QQ ଆʹొ࿥͢Δ

Slide 11

Slide 11 text

4%,Ͱͷ࣮૷

Slide 12

Slide 12 text

GJSFCBTFͷϞδϡʔϧΛ࡞Δ 'JSFCBTFͷઃఆ΍ૢ࡞ΛϞδϡʔϧʹ·ͱΊ͓ͯ͘ // Initialize Firebase const config = { apiKey: ‘apiKey wo Kokoni input', authDomain: 'vue-fb-auth.firebaseapp.com', databaseURL: 'https://vue-fb-auth.firebaseio.com', projectId: 'vue-fb-auth', storageBucket: ‘', messagingSenderId: '813627810276' } export default { // FirebaseॳظԽ init() { firebase.initializeApp(config) firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION) }, // GoogleϩάΠϯॲཧ googleLogin() { // GoogleϩάΠϯͷॲཧ಺༰Λ͜͜ʹ }, ͱ͔ ͳͲͳͲ

Slide 13

Slide 13 text

ϩάΠϯɾϩάΞ΢τͷهड़ ྫ͑͹5XJUUFSϩάΠϯΛ࣮૷͢Δ৔߹ͷهड़͸͜Ε͚ͩ ϩάΞ΢τͷ࣮૷͸ ͰऴΘΔͷͰΊͬͪΌ؆୯ ͋ͱ͸͜ΕΛίϯϙʔωϯτଆͰར༻͢Δ͚ͩ // ϩάΞ΢τॲཧ logout() { firebase.auth().signOut() }, // TwitterϩάΠϯॲཧ twitterLogin() { const Provider = new firebase.auth.TwitterAuthProvider() firebase.auth().signInWithPopup(Provider) },

Slide 14

Slide 14 text

0, 4%,Ͱ؆୯ʹ࡞ΕΔͷ͸Θ͔ͬͨ

Slide 15

Slide 15 text

6*"VUIͰͷ࣮૷

Slide 16

Slide 16 text

GJSFCBTF6*ͷϞδϡʔϧΛ࡞Δ 'JSFCBTFͱ'JSFCBTF6*ͷઃఆ΍ૢ࡞ΛϞδϡʔϧʹ·ͱΊ͓ͯ͘ 'JSFCBTFͷઃఆ͸4%,Λ࢖͏࣌ͱಉ༷ // Initialize Firebase const config = { apiKey: ‘apiKey wo Kokoni input', authDomain: 'vue-fb-auth.firebaseapp.com', databaseURL: 'https://vue-fb-auth.firebaseio.com', projectId: 'vue-fb-auth', storageBucket: ‘', messagingSenderId: '813627810276' }

Slide 17

Slide 17 text

GJSFCBTF6*ͷϞδϡʔϧΛ࡞Δ 'JSFCBTF6*ͷઃఆ͸͜Μͳײ͡ const uiConfig = { // ϙοϓΞοϓදࣔ signInFlow: 'popup', // ϩάΠϯ੒ޭ࣌ͷ໭ΓURL signInSuccessUrl: '/auth', // ϩάΠϯͷํ๏ signInOptions: [ firebase.auth.GoogleAuthProvider.PROVIDER_ID, firebase.auth.TwitterAuthProvider.PROVIDER_ID, firebase.auth.EmailAuthProvider.PROVIDER_ID ], // ϦμΠϨΫτͷઃఆ callbacks: { signInSuccessWithAuthResult: () => { return true } } } ͦͷଞʹ΋͍͔ͭ͘Φϓγϣϯͷઃఆ͕͋Γ·͢

Slide 18

Slide 18 text

GJSFCBTF6*ͷϏϡʔ 'JSFCBTF6*ͷϩάΦϯը໘Λݺͼग़͢ίʔυ͸͜Ε͚ͩ
ɹɹˢ ɹ͜Ε͕ ɹɹ͜͏ͳΔɹˠ

Slide 19

Slide 19 text

ͪΐͬͱσϞ

Slide 20

Slide 20 text

·ͱΊͱॴײ • 4%,ɺ6*ͷ͍ͣΕ΋࣮૷ࣗମ͸௒؆୯ • ͬ͘͞ͱϩάΠϯॲཧΛ࡞Γ͍ͨͳΒ6*࢖͏ͷ΋͋Γ • ϨϯμϦϯάʹएׯͷϥά͕͋ΔͷͰɺݟͤํ͔ͬ͠Γͱ • ೔ຊޠͷ৘ใ͸4%,ͷํ͕ଟΊΈ͍ͨ • αʔϏεͷσβΠϯʹدͤΔͳΒ4%,࢖͏ํ͕ແ೉ͳͷ͔ͳ • ͋ͱɺ3VMFTͷઃఆ͸େࣄ

Slide 21

Slide 21 text

ऴ ŠŠŠŠŠŠŠ ੍࡞ɾஶ࡞ NBTTZVV ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠