第三方登入系列文章的第二篇,在 ASP.NET Core 整合 Facebook 做第三方登入,Facebook 的使用者相當多,用 Facebook 來做第三方登入的普及率不是第一也有第二,算是相當廣泛,有做第三方登入的網站,大都有支援 Facebook,這篇文章記錄了整合的過程。
[料理佳餚] 在 ASP.NET Core 整合 Facebook 做為網站的第三方登入
- 1674
- 0
- ASP.NET Core
- 2022-12-03
第三方登入系列文章的第二篇,在 ASP.NET Core 整合 Facebook 做第三方登入,Facebook 的使用者相當多,用 Facebook 來做第三方登入的普及率不是第一也有第二,算是相當廣泛,有做第三方登入的網站,大都有支援 Facebook,這篇文章記錄了整合的過程。
第三方登入不是什麼新鮮事,Google、Facebook、Microsoft、...等各大平台也都有提供第三方登入,雖然整合方式看起來都一樣,但是其中有一些眉眉角角還真的要實際整合過才會知道,下面是我用 ASP.NET Core 整合台灣人最多人使用的通訊軟體 - LINE 做為第三方登入的過程記錄。
過去在 .NET Framework 想要取得執行檔所在位置,我都是用 System.Reflection.Assembly.GetExecutingAssembly().Location 搞定,很少有無法正常運作的時候,但是到了 .NET Core/.NET 的時代,這個方法已經不再適用於多數情境了。
即使 Unicode 發佈第一個版本至今已經超過了 30 年,現在我們還是得處理 Big5 編碼的文件,一個我們經常會遇到的情境,就是使用者上傳的 CSV 檔案是 Big5 編碼,而當我們使用 .NET Core 預設編碼讀取檔案的時候,會讀到亂碼。
這個是我最近處理的一個問題,使用者回報網站某個功能壞了,而且發現最近時不時網站會顯示 502(Bad Gateway)的畫面,雖然多重新整理幾次它就好了,但是這並不正常,我隨即捲起袖子開始一系列的追查動作,誓言一定要將兇手緝捕歸案。

在開發網頁程式我們最害怕的場景其中之一,就是我們的靜態檔案(*.js、*.css、*.png、...)後端已經更新了,但是在前端看到的依然是舊的版本,這個問題在 ASP.NET Core 我們可以透過一個 asp-append-version 的 TagHelper 來解決,它會自動地根據靜態檔案的內容產生一個含有雜湊值版本的網址,如果我們不透過 TagHelper 也想取得這樣的網址,我們要怎麼弄?
使用 .NET 5 開起來的專案,預設就能使用 C# 9 的語法,那麼 .NET 5 以前的 .NET Core 2/3、.NET Framework 4.x 專案是不是就不能用 C# 9 的語法? 非也非也,只要調整幾個小地方,.NET 5 之前的專案一樣可以使用 C# 9 的語法。
先前有一篇文章在講 Linux 上 Port 被用光了,導致系統無法使用的問題,其中一個解決的方法是「增加服務的 Listen Port」,我們的服務是用 ASP.NET Core 開發的,而 Nginx 則是當 Reverse Proxy 擋在前面,我們就來看一下 ASP.NET Core 及 Nginx 怎麼監聽多個 Port?
ASP.NET Core MVC 預設的 ExceptionHandler 是幫我們導到 /Home/Error,稍嫌陽春了一點,如果我們要在 Exception 發生時,記錄下額外的資訊,會需要自訂 ExceptionHandler,這個不難,我們來看一下怎麼做?
商業網站通常都會自訂自己的 HTTP 狀態碼頁面,先前有寫兩篇文章介紹在 ASP.NET MVC 如何來做這件事?
現在環境換到了 ASP.NET Core,我們來看一下怎麼處理自訂 HTTP 狀態碼頁面?