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頁面 發問,畢竟佢哋呢排都收到唔少相關嘅問題。

Powered by Half-moon Production.

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

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頁面 發問,畢竟佢哋呢排都收到唔少相關嘅問題。