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
Laravel x nuxt.js ~認証難しい問題~
Search
Masaru Yamagishi
June 07, 2019
Programming
0
990
Laravel x nuxt.js ~認証難しい問題~
at Laravel x Vue.js 勉強会 in 札幌 vol.1
https://larasap.connpass.com/event/130842/
Masaru Yamagishi
June 07, 2019
Tweet
Share
More Decks by Masaru Yamagishi
See All by Masaru Yamagishi
3D ブラウザゲーム開発を始めたい人のために準備している話
myamagishi
1
79
「DI」と仲良くなる
myamagishi
5
2.5k
大解剖!amphpを使って非同期 PHP を実現しよう!
myamagishi
1
2.4k
PHP で負荷試験のシナリオを書きたい!ので amphp を使って自作した件
myamagishi
2
640
秒間 10,000 リクエストを "簡単に"いなすゲームサーバーを Laravel で作る設計
myamagishi
9
12k
xR グラスが普及した新時代を妄想する - XRKaigi 2022
myamagishi
0
150
Reflection を使いこなして、 オブジェクトを型安全に マッピングしよう!
myamagishi
2
670
世界最速? で PHP8 Native Framework 作った
myamagishi
1
730
Eloquent Driven Development
myamagishi
2
740
Other Decks in Programming
See All in Programming
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
640
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
satoshi256kbyte
2
260
From Idea to IDE: Developing Plugins for Android Studio
thisaay
1
170
Increased Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
330
GenU導入でCDKに初挑戦し、悪戦苦闘した話
hideg
0
160
How to Break into Reading Open Source
kaspth
2
210
Swiftコードバトル必勝法
toshi0383
0
150
Understand the mechanism! Let's do screenshots tests of Compose Previews with various variations / 仕組みから理解する!Composeプレビューを様々なバリエーションでスクリーンショットテストしよう
sumio
3
620
令和トラベルにおけるLLM活用事例:社内ツール開発から得た学びと実践
ippo012
0
150
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
200
仮想ファイルシステムを導入して開発環境のストレージ課題を解消する
segadevtech
2
540
Featured
See All Featured
Designing for Performance
lara
604
68k
No one is an island. Learnings from fostering a developers community.
thoeni
18
2.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
Six Lessons from altMBA
skipperchong
26
3.3k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Side Projects
sachag
451
42k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.6k
The Invisible Customer
myddelton
119
13k
Typedesign – Prime Four
hannesfritz
39
2.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
36
2.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
45
4.8k
How to Think Like a Performance Engineer
csswizardry
16
960
Transcript
Laravel x nuxt.js ~認証難しい問題~ 山岸 “あかいいぬ” Masaru 2019/06/07
山岸 “あかいいぬ” Masaru - ㈱インフィニットループで 5 年ほど - PHP, golang,
JavaScript, TypeScript, GLSL - Laravel, Slim, nuxt.js, babylon.js - AWS, GCP https://il-m-yamagishi.github.io
None
None
https://github.com/virtual-cast/babylon-vrm-loader
https://virtualcast.jp/blog/2019/04/ux-dx-friendly-with-nuxt-js/ nuxt.js?
THE SEED ONLINE
THE SEED ONLINE xR 時代のアセット流通プラットフォーム 1. ブラウザで 3D モデルをアップロード 2.
プレビュー 3. Unity SDK でダウンロード バーチャルキャスト、Vタビで使える (今後もっと増える)
ただの Google Drive じゃね説
わかる
THE SEED ONLINE の未来 - 3D モデルだけでなく、音や画像なども対象に - アップロードしたものを販売出来るように(as UGC)
- 今バーチャルマーケットでやっていることをうちでもやりたい - THE SEED ONLINE ID で様々な VR 世界を渡り歩ける(as OAuth Provider) - 他にも色々考え中!
二段構成 Unity SDK https://seed.online https://api.seed.online WebView JSON API フロントエンド ユーザ
バックエンド
with OAuth Login
as OAuth ID Provider
Laravel Socialite Twitter, Facebook などの OAuth Provider ID を使って Laravel
ユーザ認証する niconico Provider を実装した(OAuth 周りの仕様つらい) あれ、でもフロントエンドは nuxt.js …?
認証難しい問題
認証難しい問題 ユーザは nuxt.js(node.js) サーバにアクセスする https://seed.online データは Laravel サーバから取得する https://api.seed.online どうやって
nuxt 上で Laravel 認証するか
認証難しい問題 Laravel デフォルトは Cookie でステートフル(セッション)認証を行う Laravel Passport は別途 SDK 向けに使うから使えない
Laravel Socialite で別サービスでログイン出来る必要もある
認証難しい問題 SDK + mail https://seed.online https://api.seed.online https://oauth.seed.online セッション情報を保持 (localStorage) ログインコールバック
WebView Authorize users DB API Request
認証難しい問題
tymon/jwt-auth No v1.0 in 3+ years, 400+ issues, only 1
project member #1810 実用にはちょっと...という状態
ステートレス化 nuxt <-> Laravel は json API でステートレスにしたい -> `Authorization:
Bearer token` のトークンをクッキーに入れる Middleware https:://carbon.now.sh 画像生成良い
ステートレス化 ログイン完了時にセッションIDを暗号化して json response EncryptCookies Middleware も入れておく
ステートレス化 nuxt 側はヘッダーに jwt ぽく入れるだけ
Socialite 対応 OAuth の仕様で、 Cookie ステートフルでなければならない Cookie に `;domain=seed.online` と明示して共有出来るようにした
サブドメインの異なるサービス間で cookie を共有する
Passport 対応 ログインと連携確認の描画は nuxt 側 Passport で `return view();` する場所を全て
nuxt にリダイレクトする形に変更 Cookie も Socialite 同様共有 OAuth 仕様つらい
リダイレクトバック対応 ログインしたらログインする前にいたページに戻りたい ログインを求める前に `window.sessionStorage` に今のパス情報を保存 ログイン後に復元してリダイレクト ※セキュリティ的に問題ないかチェックが必要
OAuth チュライ
fin.