gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

Laravel+SSR實現保存登錄狀態(步驟詳解)

本篇文章給大家帶來了關于Laravel+SSR的相關知識,其中主要介紹了有關Laravel SSR 下是如何保存登錄狀態的,感興趣的朋友,下面一起來看一下,希望對大家有幫助。

基于 Laravel + Nuxt3 的在線 Demo(https://laravel-nuxt3.ruti.page/)

Laravel + SSR nuxt: 如何保存登錄狀態?

Laravel + 客戶端渲染的 Vue 確實寫起來比較快,但是我們有些時候確實很需要 SEO,比如說電商、門戶網站、論壇;而且對于大型項目,相比起客戶端渲染,服務器端渲染帶來的首屏加載時間上的優勢確實是碾壓的。

但是很多同學卡在了 SSR 下如何保存登錄狀態 這個問題下面,即如何像傳統的 PHP/JSP 頁面那樣,刷新頁面后仍保有登錄狀態

準備工作

首先準備 2 個接口,一個是

GET http://example.com/api/auth/user
登錄后復制

用戶獲取當前登錄用戶信息

POST http://example.com/api/auth/tokens
登錄后復制

用于請求授權

這里有一個包含 GitHub OAuth 的完整例子 ? laravel-nuxt3-api,并且測試覆蓋率是 100%

Laravel+SSR實現保存登錄狀態(步驟詳解)

開始 SSR

  • Nuxt3

在 Nuxt3 中,可以很自由地創建一個 server only 的腳本,在 initial 整個 Nuxt App 時,可以在渲染 html 前執行這個 server only 的腳本,并在渲染 html 時使用其返回的結果。

我們可以在 plugins 下面創建一個 *.server.[js|ts] 的 server only 的腳本,

plugins/init.server.js  import { defineNuxtPlugin } from '#app'; import { useAuth } from '~/store/auth.js'; function cookieFromRequestHeaders (key) {     const headers = useRequestHeaders(['cookie']);     if ('cookie' in headers) {         const cookie = headers.cookie.split(';').find(             c => c.trim().startsWith(`${key}=`)         );         if (cookie) {             return cookie.split('=')[1];         }     }     return ''; } export default defineNuxtPlugin(async (nuxtApp) => {     const token = cookieFromRequestHeaders('token');     if (token) {         const auth = useAuth(nuxtApp.$pinia);         auth.setToken(token);         await auth.fetchUser();     } });
登錄后復制

在 store/auth.js 定義管理全局狀態的 pinia,并在其中發送異步請求

import { defineStore } from 'pinia'; import { useCustomFetch } from '~/composables/useCustomFetch.js'; import cookie from 'js-cookie'; export const useAuth = defineStore('auth', {     state: () => ({         _token: '',         _user: {},     }),     getters: {         token() {             return this._token;         },         user() {             return this._user;         },     },     actions: {         async fetchUser() {             const { data, error } = await useCustomFetch('/auth/user');             if (error.value) {                 this.reset();             }             else {                 this.setUser(data.value);             }         },         // ...     }, });
登錄后復制

注意: Nuxt3 中不推薦使用 axios 等第三方的 http 包,而是使用其內置的 useFetch()

完整的例子 ? laravel-nuxt3-web

  • Nuxt2

在 Nuxt2 中,不同于 Nuxt3,Nuxt2 只能在 store/index.js 中的 nuxtServerInit() 中運行 server only 的腳本(但是這里我們可以使用 axios)

store/index.js

export const actions = {     nuxtServerInit({ commit, dispatch, route }, { req }){         const token = cookieFromRequest(req, 'token');         if (!!token) {             commit('auth/setToken', token);         }     } };
登錄后復制

store/auth.js

import Cookie from 'js-cookie'; export const state = () => ({     user: null,     token: null }); export const getters = {     user: state => state.user,     token: state => state.token,     check: state => state.user !== null }; export const mutations = {     setToken(state, token){         state.token = token;     },     fetchUserSuccess(state, user){         state.user = user;     },     fetchUserFailure(state){         state.user = null;     },     logout(state){         state.token = null;         state.user = null;     },     updateUser(state, { user }){         state.user = user;     } } export const actions = {     saveToken({ commit }, { token, remember }){         commit('setToken', token);         Cookie.set('token', token);     },     async fetchUser({ commit }){         try{             const { data } = await this.$axios.get('/auth/user');             commit('fetchUserSuccess', data);         }catch(e){             Cookie.remove('token');             commit('fetchUserFailure');         }     },     // ... }
登錄后復制

更完整的代碼 ? Nuxt middleware to check if user is logged in not working

推薦學習:《laravel視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
成人小视频在线看| 国产美女主播在线播放| 日韩视频在线免费播放| 国产aaaaa毛片| 国产极品尤物在线| 久久观看最新视频| 欧美国产日韩另类| 国产永久免费网站| 精品综合久久久久| 亚洲色图偷拍视频| 91女神在线观看| 国产在线青青草| 大j8黑人w巨大888a片| 国产二区视频在线| 黄色影院一级片| 成人综合视频在线| 日韩中文字幕二区| 国产v片免费观看| 人妻无码久久一区二区三区免费| 免费cad大片在线观看| 国产一区 在线播放| 东北少妇不带套对白| 少妇高潮喷水在线观看| 六月丁香激情网| 日本va中文字幕| 成人黄色一级大片| 蜜臀在线免费观看| av免费观看大全| 欧洲精品一区二区三区久久| 亚洲熟妇av日韩熟妇在线| 免费在线观看视频a| 无码精品国产一区二区三区免费| 青青青在线视频播放| 日日碰狠狠躁久久躁婷婷| 亚洲a级黄色片| 99精品一区二区三区的区别| 久久无码高潮喷水| 99久久99精品| a在线视频观看| 91精品国产三级| 久久国产亚洲精品无码| 亚洲va在线va天堂va偷拍| 日韩精品手机在线观看| 国产av无码专区亚洲精品| mm131亚洲精品| 精品少妇在线视频| 特黄视频免费观看| 日本wwww视频| 欧美aaa在线观看| 天天影视综合色| 91国在线高清视频| 粉色视频免费看| 久久久久久久午夜| 久久男人资源站| 久久久久久久久久毛片| 黑森林福利视频导航| 国产a级黄色大片| 日本a√在线观看| 国产主播自拍av| 红桃一区二区三区| 天堂中文av在线| 好男人www社区| 男女av免费观看| 国产网站免费在线观看| 国产3p露脸普通话对白| 男人午夜视频在线观看| 欧美黄色性生活| 18岁视频在线观看| 国产日产欧美视频| 黄色一级在线视频| 黄色一级片在线看| 色乱码一区二区三区熟女| 可以看污的网站| 日本a√在线观看| 亚洲一区在线不卡| 91欧美视频在线| 福利在线一区二区三区| 国产wwwxx| 五月天视频在线观看| 岛国av在线免费| 两性午夜免费视频| 香蕉视频免费版| 国产在线观看欧美| 人妻激情另类乱人伦人妻| 亚洲av无日韩毛片久久| 一区二区三区 欧美| 欧美性大战久久久久xxx| 白嫩少妇丰满一区二区| 五月婷婷丁香综合网| 亚洲一级免费观看| 国产高清免费在线| 人人妻人人澡人人爽欧美一区双 | 午夜免费福利网站| 日本中文字幕在线不卡| 日韩一级免费看| 91成人在线观看喷潮教学| 精品人妻人人做人人爽| 久久精品视频91| 中文字幕在线观看日| 好吊色这里只有精品| 国产深夜男女无套内射| 那种视频在线观看| 久久精品国产精品亚洲精品色| 日本特级黄色大片| 日日摸日日碰夜夜爽无码| 天天爱天天操天天干| 亚洲国产日韩欧美在线观看| 欧美一级爱爱视频| jizz欧美激情18| 干日本少妇视频| 我要看一级黄色大片| 国产精品啪啪啪视频| 女性隐私黄www网站视频| 日韩视频在线观看视频| 成年人小视频网站| 日日夜夜精品视频免费观看| 粉嫩虎白女毛片人体| 国产欧美精品aaaaaa片| 亚洲中文字幕久久精品无码喷水| 9色视频在线观看| 奇米视频7777| 国产高清www| 国产无遮挡猛进猛出免费软件| 你懂的av在线| 99在线免费视频观看| 成年人网站av| 欧美一级裸体视频| 波多野结衣综合网| 在线观看三级网站| 欧美激情第四页| 国产大片一区二区三区| mm131国产精品| 亚洲欧美另类动漫| 国产一区亚洲二区三区| 男人天堂a在线| 激情成人在线观看| 三级黄色片免费观看| 第一区免费在线观看| 中文字幕第38页| 成人性生交免费看| 久久99爱视频| av在线网站免费观看| 波多野结衣在线免费观看| 中文字幕线观看| 中日韩av在线播放| 国产欧美精品一二三| 午夜影院免费版| 亚洲爆乳无码精品aaa片蜜桃| 成人午夜免费剧场| 无码 制服 丝袜 国产 另类| 免费拍拍拍网站| 无码人妻h动漫| 成人在线观看黄| 老熟妇仑乱视频一区二区| 一路向西2在线观看| 手机精品视频在线| 91小视频在线播放| 无码人妻精品一区二区蜜桃百度| 影音先锋成人资源网站| 国产自产在线视频| 黄色a级片免费| 伊人色在线视频| 国产高清av片| 无码粉嫩虎白一线天在线观看| 看av免费毛片手机播放| 成人中文字幕av| 日本一道在线观看| 日本一道本久久| 簧片在线免费看| 成年人深夜视频| 激情综合网俺也去| 在线成人免费av| 国产a视频免费观看| 亚洲男人天堂2021| 免费黄色日本网站| 午夜激情视频网| 熟女人妇 成熟妇女系列视频| 超碰97免费观看| 美女喷白浆视频| 黄色大片在线免费看| 国产奶头好大揉着好爽视频| 久久久久久久9| 天天干天天玩天天操| 欧美视频在线播放一区| 免费成人进口网站| 日日干日日操日日射| 精品久久久久久无码中文野结衣| 成人性生交免费看| 国内外成人免费激情视频| 波多野结衣 作品| 亚洲第一区第二区第三区| 欧美一级视频在线播放| 超碰人人爱人人| 咪咪色在线视频| 四季av一区二区| 日韩精品视频久久| 亚洲一区二区三区av无码| 国产视频在线观看网站| 亚洲狼人综合干| 黑森林精品导航|