Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LIFFで認証しようとしたら意外と奥が深かった話

C9237e9aa6c8fe028a484c9621991423?s=47 Arahabica
December 16, 2021

 LIFFで認証しようとしたら意外と奥が深かった話

C9237e9aa6c8fe028a484c9621991423?s=128

Arahabica

December 16, 2021
Tweet

Transcript

  1. LIFFで認証しようとしたら 意外と奥が深かった話 2021/12/26 ボイスアップラボ 捧隆⼆ 1

  2. Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 2

  3. Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 3

  4. ⾃⼰紹介 u 名前: 捧隆⼆ u 2021年よりLINE API Expert u 所属:

    ボイスアップラボ所属 u LINEアプリ制作 u 趣味: 温泉めぐり 4
  5. Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 5

  6. LIFFアプリっていいよね 6

  7. こちらに参加されてる皆さんなら、 そもそも「LIFFアプリとは」の説明は ⼤丈夫ですよね︖ 7

  8. LINE上で動くLIFFアプリなら、 インストール要らずだし通知もできるよ 8

  9. LINE上で動くLIFFアプリなら、 インストール要らずだし通知もできるよ ええやん 9

  10. ユーザのアクションなしで クライアントJSで認証情報が取得できるよ︕ 10

  11. ユーザのアクションなしで クライアントJSで認証情報が取得できるよ︕ 楽やん 11

  12. サーバ側でも認証したければ、 セキュリティのためにクライアントから アクセストークンだけ送ってね︕ 12

  13. サーバ側でも認証したければ、 セキュリティのためにクライアントから アクセストークンだけ送ってね︕ はーい 13

  14. Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 14

  15. サーバでの認証⽅法(基本) 15

  16. 16 サーバでの認証⽅法(基本) Ø 公式のドキュメントに詳細載ってます

  17. 17

  18. 18 認証成功︕︕ 😀

  19. 19 サーバ認証の実装(基本) Ø liff.getAccessToken()をサーバに送信 Ø サーバで確認

  20. なんとなく分かったから 早速アプリ作っていくかー 20

  21. ...あれ、認証した後ってどうするんだっけ︖ 💦 21

  22. リクエストのたびにLINE API叩いてアクセス トークン検証するわけにもいかないし、、、 💦 ...あれ、認証した後ってどうするんだっけ︖ 💦 22

  23. リクエストのたびにLINE API叩いてアクセス トークン検証するわけにもいかないし、、、 💦 ...あれ、認証した後ってどうするんだっけ︖ 💦 できれば、いつも使ってる認証ライブラリ に繋ぎ込みたい... 💦 23

  24. 24 リクエストのたびにアクセストークン検証 するわけにもいかないし、、、 💦 ...あれ、認証した後ってどうするんだっけ︖ 💦 できれば、いつも使ってる認証ライブラリ に繋ぎ込みたい... 💦 実はちゃんと認証するには

    もうひと⼿間必要だった︕︕
  25. Ø ⾃⼰紹介 Ø LIFFアプリっていいよね Ø サーバでの認証⽅法(基本) Ø サーバでの認証⽅法(発展) ⽬次 25

  26. サーバでの認証⽅法(発展) 26

  27. 27 サーバ認証の⽅法(発展系)

  28. 28 独⾃のアクセストークンを返す 独⾃のアクセストークン を⽣成し保存

  29. 29 認証 2回⽬以降のリクエスト OK 独⾃のアクセストークン

  30. 実際どうやるの︖ 30

  31. 31 実際どうやるの︖ Ø Firebaseの場合 Ø Ruby on Railsの場合

  32. 32 Firebaseの場合 Ø 使⽤技術 Ø Firebase Authentication Ø Firebaseの認証機能を⼀⼿に担う Ø

    通常はEmail認証やGoogle認証などに対応 Ø カスタムトークン作成機能 Ø Firebase Authenticationの1機能 Ø カスタム認証システムとの統合のための機能
  33. 33 Firebaseの場合 Ø 処理の流れ Ø LIFFでアクセストークンを取得 Ø アクセストークンをCloud Functions for

    Firebaseに送信 Ø Cloud Functions for FirebaseでLINEの認証処理 Ø userIdに対応するカスタムトークン作成 Ø クライアントでカスタムトークンを使⽤し、Firebaseにログイン
  34. 34 Ruby on Railsの場合 Ø 使⽤技術 Ø Devise Ø Railsのデファクトの認証ライブラリ(gem)

    Ø 認証関連は⾃作する部分はできるだけ減らして、 デファクトを活⽤ Ø devise_token_auth Ø Deviseを利⽤しつつ、APIによる認証を可能にする ライブラリ(gem)
  35. 35 Ø 処理の流れ Ø LIFFでアクセストークンを取得 Ø アクセストークンをサーバに送信 Ø サーバでLINEの認証処理 Ø

    userIdに対応するトークン作成(devise_token_auth) Ø クライアントからサーバにアクセスする時にトークンを ヘッダにつける Ruby on Railsの場合
  36. 36 Ø 処理の流れ Ø LIFFでアクセストークンを取得 Ø アクセストークンをサーバに送信 Ø サーバでLINEの認証処理 Ø

    userIdに対応するトークン作成(devise_token_auth) Ø クライアントからサーバにアクセスする時にトークンを ヘッダにつける Ruby on Railsの場合 1⽉19⽇にハンズオンで Ruby on Railsでの実装⽅法を 解説予定です︕ 宣伝
  37. ご静聴ありがとうございました 37