SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
楽ちん認証付きSPA
フロントエンドもくもく会 LT大会
@corocn
PROFILE
● @corocn(ころちゃん)
● Misoca Inc.
● Ruby (Rails), PHP, AWS
● サーバーサイドの人なのでフロントエンドは苦手
です(><)
最近の話
SPAでアプリケーションを作るの
が流行ってるそうですが
ぶっちゃけ複雑
流行りのSPAで楽に開発できそうな構成を考えてみ
ました
最近のアプリ
SPA
Mobile
App
REST API
ServerlessMonolith
RDB NoSQL
Cloud FunctionsAPI Gateway
Realtime DatabaseDynamoDB
Microservice?
楽したいので....
SPA
Mobile
App
REST API
ServerlessMonolith
RDB NoSQL
Cloud FunctionsAPI Gateway
Realtime DatabaseDynamoDB
Microservice?
認証は?
今日一番話したいこと
Auth0を使う
https://auth0.com/jp/
Auth0
● クラウド認証プラットフォーム
● SDKが豊富で組み込みが楽
● JsonWebToken (JWT) に対応 https://jwt.io/
● RailsのDevise, OmniAuthあたりで時間を浪費した
くないので使うことにした
チュートリアルも豊富
SPA用のサンプルなので、他にもあるよ
連携できるサービスが豊富
Auth0との連携ができてればGoogle, Github, Twitterを使ってのユー
ザー認証がすぐできる
Whitelist
● ささっと書ける
https://github.com/nuxt/example-auth0
Nuxt.js + Auth0の例
(しかしサンプルが壊れてて実際は動かない)
GIF
最終的にこうなった
REST API
専用のUser/Passwordはダルいので
GoogleアカウントでSingleSignOnする
余談ですが、1レポジトリ、1サーバーで管理するために、 SPAモードで静的ファイルを生成して Railsの
publicフォルダにぶち込むなどしています。本当は CDNに置いたほうが良いよね・・・
Webpackerがつらいので、
割り切ってAPIサーバーにしている
2.G社の認
証ログイン
ページへ
1.認証
3.認証成功
4.ユーザー作成
or 取得
※JsonWebToken
User ID等の情報を
Payloadとして保持する
中身は見えるけど書き換
えられない
localStorage
秘密鍵
公開鍵
8.正しいToken
か検証 & ユー
ザー情報取得
ペア
5.ユーザー情報
を含むJWTを返
す
6.保存
7.API呼ぶ
ちょっと複雑に見えるかもしれませんが、フロントと
サーバーサイドを疎結合にした上で、いい感じに認
証できたと思っている
(Auth0にロックインするという問題はある)
JWT便利
駆け足だったので、どっかでちゃ
んとまとめる予定です(技術書典
に出すかも)
時間あれば色々試した話をします
● Vue.js + AWS Amplify (Cognito)
○ IAMやら権限周りが複雑
○ JWTを仕組みとして使ってる
● Nuxt.js + Firebase
○ Cronを使うのにGAEのPub/Subとか使う必要有
○ Realtime Databaseのクセが強い
● Nuxt.js + Rails API + Devise + Heroku
○ NuxtからRailsにリダイレクトしたりと地獄
○ Deviseつらい
ありがとうございました

Contenu connexe

Tendances

Wakanda in 5 minutes
Wakanda in 5 minutesWakanda in 5 minutes
Wakanda in 5 minutes
光一 原田
 

Tendances (16)

Realm meet up #17
Realm meet up #17Realm meet up #17
Realm meet up #17
 
APIモック3分クッキング
APIモック3分クッキングAPIモック3分クッキング
APIモック3分クッキング
 
Wakanda in 5 minutes
Wakanda in 5 minutesWakanda in 5 minutes
Wakanda in 5 minutes
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
 
サービスについて
サービスについてサービスについて
サービスについて
 
What is Serverless?
What is Serverless?What is Serverless?
What is Serverless?
 
Let's try to use Background sync
Let's try to use Background syncLet's try to use Background sync
Let's try to use Background sync
 
PowerShellでFunction Appしよう!
PowerShellでFunction Appしよう!PowerShellでFunction Appしよう!
PowerShellでFunction Appしよう!
 
Web API をデバックするときに必要なたったひとつのこと
Web API をデバックするときに必要なたったひとつのことWeb API をデバックするときに必要なたったひとつのこと
Web API をデバックするときに必要なたったひとつのこと
 
「Swagger」によるAPI仕様の管理と標準化
「Swagger」によるAPI仕様の管理と標準化「Swagger」によるAPI仕様の管理と標準化
「Swagger」によるAPI仕様の管理と標準化
 
BEAR.Sunday@phpcon2012
BEAR.Sunday@phpcon2012BEAR.Sunday@phpcon2012
BEAR.Sunday@phpcon2012
 
20170705 apiをつくろう
20170705 apiをつくろう20170705 apiをつくろう
20170705 apiをつくろう
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 
20180616 to takepartflow
20180616 to takepartflow20180616 to takepartflow
20180616 to takepartflow
 
LINE API 紹介&LINE API Use Case(Azure編)
LINE API 紹介&LINE API Use Case(Azure編)LINE API 紹介&LINE API Use Case(Azure編)
LINE API 紹介&LINE API Use Case(Azure編)
 

Similaire à 楽ちんユーザー認証付Spa

#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Kazuya Sugimoto
 
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
Masato Noguchi
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019
昌桓 李
 

Similaire à 楽ちんユーザー認証付Spa (20)

#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
 
プログラム・マネジメント @ Open棟梁プロジェクト
プログラム・マネジメント @ Open棟梁プロジェクトプログラム・マネジメント @ Open棟梁プロジェクト
プログラム・マネジメント @ Open棟梁プロジェクト
 
Workshop1-02
Workshop1-02Workshop1-02
Workshop1-02
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)
 
Workshop1-01
Workshop1-01Workshop1-01
Workshop1-01
 
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
オレ流クラウドデザイン
オレ流クラウドデザインオレ流クラウドデザイン
オレ流クラウドデザイン
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
 
『RIA開発におけるサービス開発のイロハ』
 『RIA開発におけるサービス開発のイロハ』 『RIA開発におけるサービス開発のイロハ』
『RIA開発におけるサービス開発のイロハ』
 
RIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハRIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハ
 
Serverless for VUI
Serverless for VUIServerless for VUI
Serverless for VUI
 
Realm platform2019
Realm platform2019Realm platform2019
Realm platform2019
 
Workshop1-03
Workshop1-03Workshop1-03
Workshop1-03
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤
 
非SAPの人に贈るSAP on AWS
非SAPの人に贈るSAP on AWS非SAPの人に贈るSAP on AWS
非SAPの人に贈るSAP on AWS
 
SAP HANAは 単なるインメモリーデータベースじゃなくて (賢い)アプリの開発・実行プラットフォーム
SAP HANAは 単なるインメモリーデータベースじゃなくて (賢い)アプリの開発・実行プラットフォームSAP HANAは 単なるインメモリーデータベースじゃなくて (賢い)アプリの開発・実行プラットフォーム
SAP HANAは 単なるインメモリーデータベースじゃなくて (賢い)アプリの開発・実行プラットフォーム
 

楽ちんユーザー認証付Spa