我的问题很简单,但找到解决方案是我的大问题。
我试图从我的ASP.NET Web APi服务器获取项目列表。我保护了端点(我的Controller
),如下所示:
[Authorize(Roles = "Admin")]
public class ProjectController : ApiController {}
我将JWT与请求一起作为标题发送,以使安全端点能够识别登录用户(在本例中为Admin
)。我在actions.js
:
function getAccessToken() {
return localStorage.getItem('access_token');
}
let data = {
method: 'GET',
headers: { 'Content-Type':'application/json', 'Accept': 'application/json',
Authorization: `bearer ${getAccessToken()}` }
};
export function projectsFetchData(url) {
return (dispatch) => {
dispatch(projectsIsLoading(true));
fetch(url, data)
.then((response) => {
if (!response.ok) {
throw Error(response.statusText);
}
dispatch(projectsIsLoading(false));
return response;
})
.then((response) => response.json())
.then((projects) => dispatch(projectsFetchDataSuccess(projects)))
.catch(() => dispatch(projectsHasErrored(true)));
};
}
当我运行我的应用程序并且我想要获取我的项目时,请说我以Admin
身份登录时收到错误消息401 (Unauthorized)
。但是,如果我刷新网站,我会得到项目列表!退出后再次登录User
我可以获得我的项目清单! - 我不明白为什么这么麻烦?
我尝试使用Fiddler
和Postman
并且其功能完美(Just Admin
可以根据需要查看列表):
GET http://localhost:9300/project/
User-Agent: Fiddler
Content-Type: application/json
Accept: application/json
Authorization: bearer pGuJAuZDrL....
任何帮助或建议都非常感谢。感谢。