这个问题涉及Django和React。我需要重定向到我网站的反应部分,并希望让用户登录。
我尝试通过查找token.key,将其设置为cookie并将其重定向到react URL来尝试这样做。
这是我在Django中的转移视图:
def transfer(request):
token = Token.objects.get(user_id=request.user.pk)
response = redirect(event_listing_link)
token_name = 'authTok'
token_value = token.key
response.set_cookie(token_name, token_value)
return response
我得到了正确的令牌值(我使用Postman测试过),event_listing_link正常工作,我没有收到任何服务器错误。但是,我在React中的cookie.load(“authTok”)调用似乎不起作用。
这是我的React代码,用于加载cookie并尝试使用权限进行调用:
export function getEventListings() {
return (dispatch, getState) => {
const state = getState();
const tok = cookie.load("authTok");
dispatch({
type: Constants.GET_EVENT_LISTINGS
});
return api.getEventListings(tok)
.then(response => { ... })
.catch(err => {
alert("It appears as though your session has expired");
console.log("error is " + err)
history.push("/")
});
}
}
我每次都会收到警报“好像你的会话已经过期”。
注意:我认为后端有问题,因为我有一个正常的React登录选项可以加载令牌。所以我认为我的cookie在Django中没有正确设置。
任何建议都有帮助,因为我一整天都在看这个!非常感谢!