Submit Search
Upload
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
•
0 likes
•
918 views
I
Isao Ebisujima
Follow
Laravel/Vue.js勉強会#4 2018/04/25 で登壇した際の発表資料です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 30
Download now
Download to read offline
Recommended
監視とは何か ~監視エンジニアのスキルと成長~
監視とは何か ~監視エンジニアのスキルと成長~
真乙 九龍
監視基盤 ~ZabbixとCloudWatch~
監視基盤 ~ZabbixとCloudWatch~
真乙 九龍
Scaffold for read and debug java script
Scaffold for read and debug java script
紘二 佐伯
AWS ネージメントコンソール再入門 2019
AWS ネージメントコンソール再入門 2019
真乙 九龍
LaravelとNuxt.jsを業務で取り入れる際に得た知見
LaravelとNuxt.jsを業務で取り入れる際に得た知見
ssuserb6dacf
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
Keiji Kamebuchi
クラウド概論 2018
クラウド概論 2018
真乙 九龍
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
Takayuki Ushida
Recommended
監視とは何か ~監視エンジニアのスキルと成長~
監視とは何か ~監視エンジニアのスキルと成長~
真乙 九龍
監視基盤 ~ZabbixとCloudWatch~
監視基盤 ~ZabbixとCloudWatch~
真乙 九龍
Scaffold for read and debug java script
Scaffold for read and debug java script
紘二 佐伯
AWS ネージメントコンソール再入門 2019
AWS ネージメントコンソール再入門 2019
真乙 九龍
LaravelとNuxt.jsを業務で取り入れる際に得た知見
LaravelとNuxt.jsを業務で取り入れる際に得た知見
ssuserb6dacf
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
Keiji Kamebuchi
クラウド概論 2018
クラウド概論 2018
真乙 九龍
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
Takayuki Ushida
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david9142
Up ai wolfプレゼン資料
Up ai wolfプレゼン資料
Takanori Fukui
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
Yusuke Yamada
ディレクションのすゝめ
ディレクションのすゝめ
Takeo Noda
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
Takami Kazuya
オワスプナイト20150115 dependency check
オワスプナイト20150115 dependency check
Hiroaki Kuramochi
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
de:code 2017
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
Masaya Tahara
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
Shohei Okada
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Yuuki Takezawa
OSC福岡 20111203
OSC福岡 20111203
Hiroshi Bunya
俺とHashiCorp
俺とHashiCorp
Toru Makabe
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
Ryo Higashigawa
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
Shingo Furuyama
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Akira Inoue
Kerasで可視化いろいろ
Kerasで可視化いろいろ
Masakazu Muraoka
Azure DevOps で始めるスタートダッシュ
Azure DevOps で始めるスタートダッシュ
Yasuaki Matsuda
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Yuuki Takezawa
More Related Content
What's hot
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david9142
Up ai wolfプレゼン資料
Up ai wolfプレゼン資料
Takanori Fukui
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
Yusuke Yamada
ディレクションのすゝめ
ディレクションのすゝめ
Takeo Noda
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
Takami Kazuya
オワスプナイト20150115 dependency check
オワスプナイト20150115 dependency check
Hiroaki Kuramochi
What's hot
(6)
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Up ai wolfプレゼン資料
Up ai wolfプレゼン資料
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
ディレクションのすゝめ
ディレクションのすゝめ
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
オワスプナイト20150115 dependency check
オワスプナイト20150115 dependency check
Similar to LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
de:code 2017
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
Masaya Tahara
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
Shohei Okada
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Yuuki Takezawa
OSC福岡 20111203
OSC福岡 20111203
Hiroshi Bunya
俺とHashiCorp
俺とHashiCorp
Toru Makabe
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
Ryo Higashigawa
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
Shingo Furuyama
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Akira Inoue
Kerasで可視化いろいろ
Kerasで可視化いろいろ
Masakazu Muraoka
Azure DevOps で始めるスタートダッシュ
Azure DevOps で始めるスタートダッシュ
Yasuaki Matsuda
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Yuuki Takezawa
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
Takashi Abe
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
Etsuji Nakai
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
Preferred Networks
Similar to LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
(20)
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Laravel5を使って開発してみた
Laravel5を使って開発してみた
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
OSC福岡 20111203
OSC福岡 20111203
俺とHashiCorp
俺とHashiCorp
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Kerasで可視化いろいろ
Kerasで可視化いろいろ
Azure DevOps で始めるスタートダッシュ
Azure DevOps で始めるスタートダッシュ
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
1.
LaravelとNuxt.jsを業務で取り入れる際 に得た知見 戎島功 森山智哉 2018/04/25 Laravel/Vue.js勉強会#4 1
2.
自己紹介 森山智哉 エンジニア Laravel / Vue
/ Nuxt / Twitter: @frostndays 2
3.
自己紹介 戎島功(えびすじまいさお) エンジニア Laravel / Vue.js
/ Nuxt.js Twitter: @isao_x 3
4.
話すこと 1. プロジェクト概要 2. 認証方法について 3.
Nuxt.js 環境設定の読み込み 4. axiosのラッパー 5. 開発の際に役立った便利ツール 4
5.
・株式会社ITプロパートナーズで新規開発中 ・toC Webサービス ・大規模なSNSみたいなもの 1−1 プロジェクト概要 5
6.
1−2 技術スタック ・MySQL ・Nginx ・AWS ・AmazonLinux ・Docker ・Git ・PHP 7.1.7 ・Laravel 5.5 ・HTML
5 ・CSS 3/SCSS ・JavaScript/ECMAScript2015(ES6) ・Vue.js 2.9.3 ・Nuxt.js 1.0.0 6
7.
1−3 サーバー構成 ユーザー 管理者 7 APIサーバー /
管理画面フロント側サーバー
8.
・Laravel Passportとは APIでログイン認証を行うための Laravelのライブラリ ・使い方 laravelPassportで使用するTableを生成 認証用のルーティングが自動生成される 2−1 認証方法について 8
9.
2−2 Laravel Passportでの認証フロー ③ AccessTokenを渡す ①
ID/password ④ ヘッダーにAccessTokenをセット ⑤ 認証が必要なぺージにアクセス ② AccessTokenを発行 9
10.
2−3 Laravel Passport facebook認証 ・使用したライブラリ danjdewhurst/laravel-passport-facebook-login ・使い方 laravelPassportと同様のエンドポイントを使用する ID/passの代わりにFacebookのアクセストークンを
POSTする userテーブルにはfacebookID用のカラムを用意する 10
11.
2−4 Laravel Passport エンドポイント変更 デフォルトのエンドポイント
oauth/token を api/oauth/token に変更 app/Providers/AuthServiceProvider.php public function boot() { $this->registerPolicies(); Route::group([ 'middleware' => 'BarryvdhCorsHandleCors::class'], function() { $callback = null; $options = [ 'prefix' => 'api/oauth', 'namespace' => 'LaravelPassportHttpControllers', ]; Passport::routes($callback, $options); }); } 11
12.
2−5 Laravel Passport トークン有効期限 12 ・有効期限チェック機能の追加 使用するアクセストークンに有効期限を設定 。。が有効期限をチェックして期限切れかどうかを判定する機能は無いため
13.
2−5 Laravel Passport トークン有効期限 13 ・有効期限チェック機能の追加 使用するアクセストークンに有効期限を設定 。。が有効期限をチェックして期限切れかどうかを判定する機能は無いため 有効期限をチェックする機能追加 有効期限が切れていていたらリフレッシュトークンを使用
14.
2−5 Laravel Passport トークン有効期限 14 public
function checkToken(ResourceServer $server, Request $request) { // ヘッダーのアクセストークンを取得 $psr = (new DiactorosFactory)->createRequest($request); $psr = $server->validateAuthenticatedRequest($psr); $reqToken = $psr->getAttribute('oauth_access_token_id'); // 有効期限が切れていないかチェック $accessToken = OauthAccessToken::where('id', $reqToken) ->where('expires_at', '>', Carbon::now()) ->first(); }
15.
nuxt.config.js module.exports = { env:
{ baseUrl: process.env.BASE_URL || 'http://localhost:3000' } } 3−1 Nuxt.js 環境設定の読み込み 15 通常、Nuxt.jsでは、apiサーバーのurlとか、laravel passportで生成したsecret keyと かっていう環境固有の定数をnuxt.config.jsで定義します。 こんな感じです↓(Nuxt.js公式ドキュメントより引用)
16.
3−2 Nuxt.js 環境設定の読み込み 16 env.js exports.env =
{ BASE_URL: 'http://localhost:3000', CLIENT_ID: 2, PASSPORT_SECRET: 'dummyMWN3ojUoBUWww5o3w5TrviGbW8BI9Vdummy', }; 今回、Laravelと同じようにenvファイルを用意してそれで定数を管理したいと思ったの で、env.jsというファイルを作って、そこで環境固有の定数を定義しました。 こんな感じです↓
17.
nuxt.config.js const env =
require('./env.js'); module.exports = Object.assign(env, { … } env.jsをnuxt.config.jsでrequireする 3−3 Nuxt.js 環境設定の読み込み 17
18.
4−1 axiosのラッパー services/http.js import axios from
'axios'; const axiosBase = axios.create({ baseURL: '', timeout: 10000, headers: { 'Access-Control-Allow-Origin': '*', 'X-Requested-With': 'XMLHttpRequest', }, }); 18
19.
4−2 axiosのラッパー services/http.js get(url, config =
{}) { return axiosBase.get(url, config); }, post(url, data = {}, config = {}) { return axiosBase.post(url, data, config); }, delete(url, config = {}) { return axiosBase.delete(url, config); }, 19
20.
services/http.js axiosBase.interceptors.request.use((config) => { //
特定のURL指定が無い場合のみ、 server/client 判定 if (!config.baseURL) { config.baseURL = process.server ? process.env.API_URL_SERVER : process.env.API_URL_CLIENT; } return config; }, error => Promise.reject(error)); 4−3 axiosのラッパー 20
21.
4−4 axiosのラッパー services/http.js setAuthorizationToken(token) { if (token)
{ axiosBase.defaults.headers.common.authorization = `Bearer ${token}`; } else { delete axiosBase.defaults.headers.common.authorization; } }, 21
22.
・Clockwork(ブラウザでのLaravelのデバッグに役立つchrome拡張) https://chrome.google.com/webstore/detail/clockwork/dmggabnehkmmfmdffgajcflpdjlnoemp ・sequel-pro-laravel-export(migrationを自動生成するsequelPro拡張) https://github.com/cviebrock/sequel-pro-laravel-export ・SQL to Laravel
Builder(SQLからクエリビルダーへ変換するWebサービス) http://www.midnightcowboycoder.com/ ・Vue.js devtools(ブラウザでのVue.jsのデバッグに役立つchrome拡張) https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=ja 5−1 開発の際に役立った便利ツールなど 22
23.
・PHPのコーディング規約はPSR-2を採用 https://www.php-fig.org/psr/psr-2/ ・PHPのLintツールはPHP_CodeSnifferを採用 https://github.com/squizlabs/PHP_CodeSniffer 5−2 開発の際に役立った便利ツールなど 23
24.
5−3 開発の際に役立った便利ツールなど 24 ・ES6のコーディング規約はeslintのeslint-config-airbnbがベース https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb ・vue.jsのコーディング規約はvue.js公式のスタイルガイドがベース https://jp.vuejs.org/v2/style-guide/index.html ・ES6のlintツールはeslintを採用 https://github.com/eslint/eslint
25.
LaravelとVue.js(Nuxt.js)を使ってみて 25
26.
LaravelとVue.js(Nuxt.js)を使ってみて よかった!! 26
27.
おしまい ですが、、、 27
28.
おしまい ですが、、、 ITプロパートナーズではLaravel、Vue.jsで開発したいエンジニア を募集しています。 28
29.
おしまい ですが、、、 ITプロパートナーズではLaravel、Vue.jsで開発したいエンジニア を募集しています。 ご興味のある方は是非お声掛けください!! 29
30.
おしまい ご清聴ありがとうございました!! 30
Download now