近況 #7


近排忙緊做Data相關嘅嘢,因而學緊Python。不過亦因此令我明白,我根本唔適合做analyze類嘅嘢。不過學Python係幾開心嘅。


當然,唔鍾意analyze唔代表唔鍾意學Python。當年PHP同Python我選擇咗PHP,今日我只係返轉頭學習下Python咁。最緊要嘅都係唔好放棄學習嘅心......呢句出自自己把口真心好奇怪,因為明明我自己先係最唔鍾意學習嘅人。

Laravel 5.6.30安全性更新


官方文件已經釋出咗(好耐)啦。

話說早排諗住開始寫1.5.0部份嘅功能,咁當然就做咗更新先啦。composer update自然唔少得。當我更新後,發現Axios回報401錯誤。401嘅意思係,你嘅要求未經認證。我心諗無可能呀,我應該無郁過堆設定先啱。於是我就由migrate:refresh到passport:install --force都做埋,依然話我錯。

於是我就上去高手雲集嘅 Laravel台灣 發問。
Facebook post embed功能唔支援群組......

如圖中所見,我最後喺 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嘅悲劇


更新咗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真係要打返好啲... -___-

Powered by Half-moon Production.

Copyright © 2011-2020 by 泣雨家的雜物房. Version 1.5.2.

近況 #7


近排忙緊做Data相關嘅嘢,因而學緊Python。不過亦因此令我明白,我根本唔適合做analyze類嘅嘢。不過學Python係幾開心嘅。


當然,唔鍾意analyze唔代表唔鍾意學Python。當年PHP同Python我選擇咗PHP,今日我只係返轉頭學習下Python咁。最緊要嘅都係唔好放棄學習嘅心......呢句出自自己把口真心好奇怪,因為明明我自己先係最唔鍾意學習嘅人。

Laravel 5.6.30安全性更新


官方文件已經釋出咗(好耐)啦。

話說早排諗住開始寫1.5.0部份嘅功能,咁當然就做咗更新先啦。composer update自然唔少得。當我更新後,發現Axios回報401錯誤。401嘅意思係,你嘅要求未經認證。我心諗無可能呀,我應該無郁過堆設定先啱。於是我就由migrate:refresh到passport:install --force都做埋,依然話我錯。

於是我就上去高手雲集嘅 Laravel台灣 發問。
Facebook post embed功能唔支援群組......

如圖中所見,我最後喺 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嘅悲劇


更新咗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真係要打返好啲... -___-