我不知道为什么我在Reactjs中收到401 Unauthorized错误?为什么?

时间:2017-04-07 00:32:03

标签: asp.net reactjs token access-token

我的问题很简单,但找到解决方案是我的大问题。 我试图从我的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我可以获得我的项目清单! - 我不明白为什么这么麻烦? 我尝试使用FiddlerPostman并且其功能完美(Just Admin可以根据需要查看列表):

GET     http://localhost:9300/project/
User-Agent: Fiddler
Content-Type: application/json
Accept: application/json
Authorization: bearer pGuJAuZDrL....

任何帮助或建议都非常感谢。感谢。

0 个答案:

没有答案