[SignalR] Websocket 即時聊天程式(二) - 後端 Token 授權
SignalR驗證方式 SignalR 的授權可以選擇使用 Cookie 或 Bearer Token:
Cookie: 驗證方法與一般網頁別無二致,較容易實作但缺點是只能用於瀏覽器(browser-specific)。 Bearer Token 可通用於網頁和 App (或提供任何應用程式),使用 Token 做登入能夠讓應用程式更容易實作其他使用者端,如果有其他的伺服器簽發 Token,更容易整合至單一登入(Single Sign-On),也是官方建議使用的方式,以下假設簽發 Token 與 SignalR 伺服器為同一台進行實作。 將 Token 驗證實作至伺服器之前,讓我們先練習實作一支簽發 Token 的 API。
以 Option pattern 取得 JWT 設定 這裡練習 Option pattern,以獲取 appsetting.json 當中 JWT 相關設定的強型別支援:
appsetting.json 將 JWT 相關的設定寫到 appsetting.json 當中: { "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "JWT": { "Issuer": "Naxo", "Expires": "1440", // 憑證有效分鐘數 "SignKey": "myNameIsTigernaxo,ThisIsMyPersonalBlog" // 設定簽發/解密憑證的對稱式加密金鑰 }, "AllowedHosts": "*" }