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
PWA x firebase x Auth0 での認証
Search
Kenta TSUNEMI
October 21, 2020
Programming
640
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PWA x firebase x Auth0 での認証
2020/10/21 PWA Night vol.21 ~認証~
Kenta TSUNEMI
October 21, 2020
More Decks by Kenta TSUNEMI
See All by Kenta TSUNEMI
TypeScript Compiler はどのように未使用変数を検出しているのか?
tocomi
0
130
配列にまつわる型検査をしたら思ったより大変だった話
tocomi
0
140
型チェック 速度改善 奮闘記⌛
tocomi
4
1.3k
CSSセレクタを戦わせてみた⚔️
tocomi
0
86
フロントエンド一年生がテストを考える
tocomi
1
390
Other Decks in Programming
See All in Programming
Agents on Rails - Rails at Scale 2026
irinanazarova
0
550
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
170
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
170
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
100
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.2k
JIS keyboard support in Omarchy
lef237
0
110
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
560
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
220
気持ちぃ〜角丸 Squircle
ryu1013
0
310
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
R8 の設定見直しでアプリサイズ削減
andpad
0
220
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
570
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
The agentic SEO stack - context over prompts
schlessera
0
970
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Marketing to machines
jonoalderson
1
5.9k
Facilitating Awesome Meetings
lara
57
7.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Transcript
PWA x firebase x Auth0 での認証 2020/10/21 PWA Night vol.21
~認証~
自己紹介 Kenta TSUNEMI tocomi0112 tocomi 2015年に新卒でERPベンダーに入社。 2019年にWebエンジニアに転身。 新規サービスを複数開発する部署で コミュニティサービスを開発中。 趣味は野球観戦、競馬、ゲーム。
Agenda 1. はじめに 2. Auth0 3. Firebase 4. PWA
はじめに
はじめに PWA x Firebase x Auth0での認証について、 実際に作成しているアプリケーションを例に挙げてお話します。
認証認可 アプリ
登録 認証フロー メールアドレス、パスワード 認証メール メールの認証アドレスをクリック
ログイン 認証フロー メールアドレス、パスワード アクセストークン (+リフレッシュトークン) アクセストークン カスタムトークン カスタムトークンでサインイン firebaseアクセストークン
トークンリフレッシュ 認証フロー リフレッシュトークン アクセストークン (+リフレッシュトークン) アクセストークン カスタムトークン カスタムトークンでサインイン firebaseアクセストークン
Auth0
Auth0を併用する理由 FirebaseにもAuthenticationの機能はある。 Auth0を併用している理由とは
Auth0を併用する理由 ソーシャルログインの対応範囲 ソーシャルログイン対応を見据えている。実装はこれからの予定。 firebaseで対応しているのは、メジャーどころはGoogle, Facebook, Twitter あたり。 Auth0ではそれに加えてLINEも利用することができる。
Auth0を併用する理由 マネージドな領域の広さ 本人確認やパスワードリセットなど認証にまつわる部分をマネージドな機能と して提供してくれる。 アプリへの組み込みが容易であり、実装・運用コストを削減できる。
Firebase
firebaseとの連携 カスタムトークンを使った連携 カスタムトークンを利用することでAuth0と連携した認証が可能。 カスタムトークンの生成にAuth0のuidを用いることで、 firebaseのユーザーuidがAuth0と同一になる。 カスタムトークン発行後、それを利用してサインインすることで firebaseの各サービスで利用できるアクセストークンが発行される。
firebaseとの連携 カスタムトークンを使った連携 アクセストークン Auth0アクセストークン firebaseカスタムトークン Auth0から受け取ったアクセストークン を使ってカスタムトークンを作成。 カスタムトークン生成に最低限必要なのは ユーザーを一意に識別できるuidのみ。 カスタムトークンの生成にはサーバーサイ
ドでAdminSDKを利用する必要がある。
firebaseとの連携 カスタムトークンを使った連携 firebaseカスタムトークン firebaseカスタムトークン firebaseアクセストークン 受け取ったカスタムトークンを使って firebaseにサインインする。 サインインしたときにfirebaseにユーザー が作成される。 返却されたトークンを使って、以後は
firebaseのサービスにアクセスできる。
PWA
PWAでの工夫 永久ログイン コミュニティサービスという特性上、一度ログインしたら再度ログインを挟ま ずにサービスを利用してもらいたい。 リフレッシュトークンを利用することで一度ログインしたらログイン状態を維 持するようトークンのライフサイクルを管理。
PWAでの工夫 永久ログイン firebaseカスタムトークン firebaseカスタムトークン firebaseアクセストークン Auth0アクセストークン アクセストークン (+リフレッシュトークン) リフレッシュトー クン
Auth0のアクセストークンの期限が切れ ていればリフレッシュトークンを使ってア クセストークンを更新。 Auth0のアクセストークン期限は1時間 (変更可) トークンを更新したあとはログインしたと きのフローと一緒。
PWAでの工夫 永久ログイン firebaseのトークンを直接リフレッシュできないのか?
PWAでの工夫 永久ログイン firebaseリフレッシュトークン firebaseアクセストークン (+リフレッシュトークン) firebaseにもリフレッシュトークンがある ので、それを使ってアクセストークンの更 新が可能。 firebaseのアクセストークンの期限は1時 間(変更不可)
firebaseカスタムトークン firebaseアクセストークン リフレッシュトークン
おわり