問題描述:
當我們用swagger UI對Web API 進行測試時報401錯誤
我們點開GET /api/services/app/Role/GetAll,輸入參數
點擊Try it out!按鈕,報401錯誤
原因和解決方案
查看右上角有個紅色感嘆號的圖標
點擊查看原因是訪問API需要輸入授權token值進行驗證,token值是后台根據登錄用戶動態生成的,如何獲取呢?
解決方案一:
有個直接獲取授權token的API:/api/TokenAuth/Authenticate
輸入用戶名和密碼就可以獲得token
獲取結果,注意使用時前面加上 Bearer + 空格
解決方案二:
我們可以直接登錄客戶端查看訪問API的token值即可
我以admin登錄成功后,F12 查看瀏覽器訪問后台token值,在Network下隨便點擊一個請求數據到后台請求API的鏈接(注:我用的是Google chrome 瀏覽器)
我們在上面的Headers的Request Headers里面的Authorization查看到授權token信息
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjIiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiYWRtaW4iLCJBc3BOZXQuSWRlbnRpdHkuU2VjdXJpdHlTdGFtcCI6IjY3NDhlNDQ2LTI4YWUtYWRjNi0zNmU2LTM5ZTIzMGFhNzA3MSIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9jbGFpbXMvcm9sZSI6IkFkbWluIiwiaHR0cDovL3d3dy5hc3BuZXRib2lsZXJwbGF0ZS5jb20vaWRlbnRpdHkvY2xhaW1zL3RlbmFudElkIjoiMSIsInN1YiI6IjIiLCJqdGkiOiI0N2U0Y2YwNC05ODYyLTQ4MjItOTBhOC01Njk1NWUwYWE1M2UiLCJpYXQiOjE1MTE0NDU3MjUsIm5iZiI6MTUxMTQ0NTcyNSwiZXhwIjoxNTExNTMyMTI1LCJpc3MiOiJzYWFzIiwiYXVkIjoic2FhcyJ9.eXDes4LNkV4dkcFy-GTSF6kGDTK3a0blS3I6O7c2HuQ
將這個授權信息copy到我們后台進行授權
再點開發現已授權成功
然后我們再進行測試,Response Code已返回200,測試通過。在后台打斷點即可調試