我有一个Django网站运行,用户可以登录,保存数据,记笔记等。我想为这个网站制作一个移动应用程序,我正在寻找本地反应,因为我使我的网站前端与反应-JS。
我希望能够从应用中获取网站上的用户数据。我看到React-Native有fetch
函数,类似于AJAX调用。问题是我需要为POST调用验证用户以返回一些内容,因为我正在读取request.user
值以获取正确的数据。我也知道如果没有正确的csrf令牌,Django将不允许POST调用。
如何使用正确的request.user
值进行提取并从react-native应用程序传递csrf安全性测试?
答案 0 :(得分:2)
对于您的移动应用程序,我会首先使用Django Rest Framework创建API。在身份验证中,您应该使用Token Authentication
,因此在每个请求中都会有跟随听众Authorization: Token user_token
。使用此令牌,您可以在视图中使用request.user
照常识别用户。
在React-Native中,您应该使用axios来执行登录请求(获取令牌)并使用用户数据:
const config = {
headers: {
'X-CSRFToken': Cookies.get('csrftoken'),
'Content-Type': 'application/json'
}
};
axios.get(`${ROOT_URL}api/users/data/`, config_user)
.then(response => {
console.log(response.data) // User Data
});