NuxtJS 學習記錄之 @nuxtjs/auth 中介軟體服務端失效原因之 https 驗證失敗

chuoke發表於2019-10-14

最近在學習體驗前後端分離專案(我是 PHPer),服務端渲染的那種,使用的是 NuxtJS。

有用到身份驗證。

身份驗證擴充套件使用的是社群提供的 @nuxtjs/auth,但是這過程中出現一個問題--- auth 中介軟體驗證在服務端失效。明明是登入成功的,卻不能按照想要的邏輯跳轉,而在瀏覽器中是正常的,上網查詢有人也有這種跳轉異常的問題,但是發現情況不一樣,也就是我沒找到和我這個情況類似的問題描述,也可能是我搜尋的姿勢不正確。

也罷,想想問題應該出在羊身上。

一直以來,我反覆的測驗除錯,認為這個問題是 nuxtjs/auth 的 bug,幾乎快要放棄了,但是在體驗 demo 的時候,發現一切正常,這才意識到肯定是我哪裡姿勢不對,於是才冷靜下來,尋根問源。

我看著原始碼,一步一個 console.log(),花了大概一小時,發現問題所在,結果太讓我吃驚了,之前網搜除錯都不止五小時,我都神經的跟貓聊起這事了。

現在看來,這是一個多麼常規的問題,極其的可恥。

找到的錯誤提示是:unable to verify the first certificate,即 https 簽名證照驗證不透過。這是在 auth 中介軟體請求獲取使用者資訊時報的錯,我立即將 api 的基礎路徑改為 http,再測試時,就是正常的效果。

之所以會把 api 的基礎路徑寫成 https,是我從瀏覽器複製的,我後端用的是 homestaed 環境配置的 laravel 專案,這個自然的有個 https。其實在瀏覽器裡訪問時,也有提示說這個證照不安全,但是我並不知道 nodejs 也是會有同樣的驗證。這裡只能小怪 NuxtJS,居然有錯不提示,看來還有待改進啊。

這是個小問題引起的大問題,正因為是小問題,所以我才要記錄下來,並且今天我也發現,我找 bug 及閱讀原始碼的能力又有所提升,居然可以看得懂大篇幅的 JS 原始碼啦。

所以說 Practice Make Perfect,雖不能每日精進,成長不僅需要保持好奇,還要刻意練習。畢竟希望都在鍵盤上,多動手才能豐胸補腦。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
? 我的導航網站已經可以公開使用啦:Cootab

相關文章