C# Web API的Token驗證小技巧
RESTful Web API不管是用C#寫還是用什麼語言寫的,都一定要用Token驗證,除非那個API是給所有人呼叫都無所謂的,比如說是取得公司的公開課程表的API,那就不需要Token。
如果需要Token的話,在C#要怎樣實作是很方便的呢?
這篇文章不會教怎樣寫Middleware因為網路已經夠多文章在教了,但我會說Token用Middleware來做相當方便。
Middleware做驗證
尤其我寫的是資料庫應用程式,會有使用者帳號的,直接寫一個中間層把JWT解開以後驗證資料庫,用使用者帳號取得使用者權限,全部寫在一個程式剛執行就一定會執行的Middleware裡面。
這樣程式一呼叫的時候就自動取得了權限,可以在每個Controller裡面判斷權限是否有,沒有的話就傳回null或錯誤訊息。
這樣Angular只要抓到資料為null或者錯誤訊息就知道沒有權限,再做處理,雖然Angular的Guard可以防止這個問題,但前端後端都有防護的話更安全。
Middleware的用法
可以有兩種方法利用Middleware讓開發更順暢,在開發的時候先給定比如權限預設值,Middleware先Comment起來。這樣就不會呼叫的時候因為Token錯誤一直在那邊卡。
或者寫兩個Middleware一個是用JWT,一個是用固定的Token,開發就用固定的Token,然後在那邊設定固定的權限。
結論
C# Web API只要有好的架構設計,可以減少開發的很多時間,以及Bugs出現的機率也會降低很多。
Middleware處理Token也只是一種方法而已,當然還有很多種方法。Middleware寫法也要自行去看書或者查網路文件。相信並不難,在現在GitHub這麼多範例程式碼的狀態,去找一個MIT License的學習模仿一下就好了。
What's your reaction?
Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0