唔知寫啲咩黎做新一年嘅題材好,唯有用一篇近況黎做個新一年開始。
近況 #7
Laravel, 近況, Python, Telescope - by LittPi
近排忙緊做Data相關嘅嘢,因而學緊Python。不過亦因此令我明白,我根本唔適合做analyze類嘅嘢。不過學Python係幾開心嘅。
當然,唔鍾意analyze唔代表唔鍾意學Python。當年PHP同Python我選擇咗PHP,今日我只係返轉頭學習下Python咁。最緊要嘅都係唔好放棄學習嘅心......呢句出自自己把口真心好奇怪,因為明明我自己先係最唔鍾意學習嘅人。
Laravel 5.6.30安全性更新
Laravel, 學習帳 - by LittPi
官方文件已經釋出咗(好耐)啦。
話說早排諗住開始寫1.5.0部份嘅功能,咁當然就做咗更新先啦。composer update自然唔少得。當我更新後,發現Axios回報401錯誤。401嘅意思係,你嘅要求未經認證。我心諗無可能呀,我應該無郁過堆設定先啱。於是我就由migrate:refresh到passport:install --force都做埋,依然話我錯。
於是我就上去高手雲集嘅 Laravel台灣 發問。
如圖中所見,我最後喺 GitHub嘅laravel/passport#452 度搵到答案。因應PHP serialize()同unserialize()衍生出黎嘅 安全性問題 而進行咗更新,令到Cookies預設唔會進行serialize嘅動作。Axios本來係接受serialized cookie去將token傳送到OAuth2 server嘅關係,呢次更新做成咗Axios傳咗個錯嘅token俾伺服器,而伺服器就回傳401嘅HTTP回應返黎。
解決嘅方法:
1. 喺App\Http\Middleware\EncryptCookies.php度加入以下代碼以重新將cookies進行serialize()。
protected $serialize = true;
2. 如官方文件所講,更新Laravel Passport至6.0.7就可以使用Passport::withoutCookieSerialization()嘅方法。將呢個方法加入到App\Http\Providers\AppServiceProvider.php裡面。
個人建議跟隨官方嘅步伐進行更新,因為始終涉及安全性問題。如果有任何問題歡迎去 Passport嘅Issue頁面 發問,畢竟佢哋呢排都收到唔少相關嘅問題。
濫用.length嘅悲劇
Composer, Laravel, PHP, 學習帳, Javascript - by LittPi
更新咗1.3.1一段時間後,有一日我想幫幾篇舊文章修改少少嘢先發現,個分頁位爛咗。
佢第一頁係會有分頁欄,但係第二頁打後嘅會消失。我望一望Chrome console又無報錯......
TL;DR,抽絲剝繭後發現原來係我用咗.length黎計Object size出事。雖然唔知點解佢計到第一頁,但係之後嘅都死晒。當我喺第一頁用console.log(object.length)嗰陣會出5,之後其他頁面係undefined。於是就上網搵返正確計算object size嘅方法,並將object.length個位改返做Object.keys([OBJECT_NAME]).length...
呢個故事教訓我,啲JS嘅basis真係要打返好啲... -___-
Vue.js學習帳 - 2. 基本認識
Laravel, Vue.js, 學習帳 - by LittPi
上次就講咗乜嘢係Vue.js (https://littpi.net/blog/post/22),今次就講下基本嘅一啲應用。