本篇範例展示如何在ASP.NET Core裡,同時使用Cookie及JwtBearer的身分驗證機制。
範例原碼:https://github.com/Clark159/CLK.AspNetCoreLab
範例專案:CookieOrJwtBearerAuthenticationLab
測試步驟:
- Account.Login、狀態:未登入
1. 點擊GetTokenByPassword按鈕,將會使用Username、Password進行身分驗證,並發放Token回傳。
2. 點擊GetUserByToken按鈕,將會使用步驟1取得的Token進行身分驗證,並回傳目前登入的User資料。(authenticationType="JwtBearer")
3. 點擊Login按鈕,將會使用Username、Password進行身分驗證,並發放Cookie後轉頁至Home頁面。
- Home.Index、狀態:已登入
1. 進入頁面後,會先顯示目前登入的User資料。(authenticationType="Cookies")
2. 點擊GetTokenByCookie按鈕,將會使用Cookie進行身分驗證,並發放Token回傳。
3. 點擊GetUserByToken按鈕,將會使用步驟1取得的Token進行身分驗證,並回傳目前登入的User資料。(authenticationType="JwtBearer")
4. 點擊GetUserByCookie按鈕,將會使用Cookie進行身分驗證,並回傳目前登入的User資料。(authenticationType="Cookies")
5. 點擊Logout按鈕,將會刪除Cookie,並轉頁至Login頁面。
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。