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
LIFFで認証しようとしたら意外と奥が深かった話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
捧隆二
December 16, 2021
Programming
0
2k
LIFFで認証しようとしたら意外と奥が深かった話
捧隆二
December 16, 2021
Tweet
Share
More Decks by 捧隆二
See All by 捧隆二
LIFF API のセキュリティ的な話
arahabica
0
650
LINEミニアプリ/LIFFアプリを サクッと作りたいならFirebase
arahabica
3
2.3k
Firebase x LINE / Ruby on Rails x LINEでログイン画面を無くそう
arahabica
0
2.5k
公式管理画面 vs 非公式管理画面
arahabica
0
580
Share Target Pickerを使ってLIFFアプリを拡散しよう
arahabica
0
1.1k
Share Target Pickerを使って消えるメッセージを作ってみた
arahabica
0
7.9k
非公式LINE管理画面を作ってみた
arahabica
0
460
Clovaで他とは違うスマートスピーカー体験
arahabica
0
150
LINEグループであそぼ
arahabica
1
410
Other Decks in Programming
See All in Programming
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
170
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
460
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
340
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.4k
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
150
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
440
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
120
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
200
20260315 AWSなんもわからん🥲
chiilog
2
180
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
240
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1.2k
PHPで TLSのプロトコルを実装してみる
higaki_program
0
510
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
170
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
310
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
250
Typedesign – Prime Four
hannesfritz
42
3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
It's Worth the Effort
3n
188
29k
Code Reviewing Like a Champion
maltzj
528
40k
Transcript
LIFFで認証しようとしたら 意外と奥が深かった話 2021/12/26 ボイスアップラボ 捧隆⼆ 1
Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 2
Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 3
⾃⼰紹介 u 名前: 捧隆⼆ u 2021年よりLINE API Expert u 所属:
ボイスアップラボ所属 u LINEアプリ制作 u 趣味: 温泉めぐり 4
Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 5
LIFFアプリっていいよね 6
こちらに参加されてる皆さんなら、 そもそも「LIFFアプリとは」の説明は ⼤丈夫ですよね︖ 7
LINE上で動くLIFFアプリなら、 インストール要らずだし通知もできるよ 8
LINE上で動くLIFFアプリなら、 インストール要らずだし通知もできるよ ええやん 9
ユーザのアクションなしで クライアントJSで認証情報が取得できるよ︕ 10
ユーザのアクションなしで クライアントJSで認証情報が取得できるよ︕ 楽やん 11
サーバ側でも認証したければ、 セキュリティのためにクライアントから アクセストークンだけ送ってね︕ 12
サーバ側でも認証したければ、 セキュリティのためにクライアントから アクセストークンだけ送ってね︕ はーい 13
Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 14
サーバでの認証⽅法(基本) 15
16 サーバでの認証⽅法(基本) Ø 公式のドキュメントに詳細載ってます
17
18 認証成功︕︕ 😀
19 サーバ認証の実装(基本) Ø liff.getAccessToken()をサーバに送信 Ø サーバで確認
なんとなく分かったから 早速アプリ作っていくかー 20
...あれ、認証した後ってどうするんだっけ︖ 💦 21
リクエストのたびにLINE API叩いてアクセス トークン検証するわけにもいかないし、、、 💦 ...あれ、認証した後ってどうするんだっけ︖ 💦 22
リクエストのたびにLINE API叩いてアクセス トークン検証するわけにもいかないし、、、 💦 ...あれ、認証した後ってどうするんだっけ︖ 💦 できれば、いつも使ってる認証ライブラリ に繋ぎ込みたい... 💦 23
24 リクエストのたびにアクセストークン検証 するわけにもいかないし、、、 💦 ...あれ、認証した後ってどうするんだっけ︖ 💦 できれば、いつも使ってる認証ライブラリ に繋ぎ込みたい... 💦 実はちゃんと認証するには
もうひと⼿間必要だった︕︕
Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 25
サーバでの認証⽅法(発展) 26
27 サーバ認証の⽅法(発展系)
28 独⾃のアクセストークンを返す 独⾃のアクセストークン を⽣成し保存
29 認証 2回⽬以降のリクエスト OK 独⾃のアクセストークン
実際どうやるの︖ 30
31 実際どうやるの︖ Ø Firebaseの場合 Ø Ruby on Railsの場合
32 Firebaseの場合 Ø 使⽤技術 Ø Firebase Authentication Ø Firebaseの認証機能を⼀⼿に担う Ø
通常はEmail認証やGoogle認証などに対応 Ø カスタムトークン作成機能 Ø Firebase Authenticationの1機能 Ø カスタム認証システムとの統合のための機能
33 Firebaseの場合 Ø 処理の流れ Ø LIFFでアクセストークンを取得 Ø アクセストークンをCloud Functions for
Firebaseに送信 Ø Cloud Functions for FirebaseでLINEの認証処理 Ø userIdに対応するカスタムトークン作成 Ø クライアントでカスタムトークンを使⽤し、Firebaseにログイン
34 Ruby on Railsの場合 Ø 使⽤技術 Ø Devise Ø Railsのデファクトの認証ライブラリ(gem)
Ø 認証関連は⾃作する部分はできるだけ減らして、 デファクトを活⽤ Ø devise_token_auth Ø Deviseを利⽤しつつ、APIによる認証を可能にする ライブラリ(gem)
35 Ø 処理の流れ Ø LIFFでアクセストークンを取得 Ø アクセストークンをサーバに送信 Ø サーバでLINEの認証処理 Ø
userIdに対応するトークン作成(devise_token_auth) Ø クライアントからサーバにアクセスする時にトークンを ヘッダにつける Ruby on Railsの場合
36 Ø 処理の流れ Ø LIFFでアクセストークンを取得 Ø アクセストークンをサーバに送信 Ø サーバでLINEの認証処理 Ø
userIdに対応するトークン作成(devise_token_auth) Ø クライアントからサーバにアクセスする時にトークンを ヘッダにつける Ruby on Railsの場合 1⽉19⽇にハンズオンで Ruby on Railsでの実装⽅法を 解説予定です︕ 宣伝
ご静聴ありがとうございました 37