在django和react之间共享auth



我有一个带有默认django身份验证系统的网站。整个网站是静态的,我希望有几个页面动态使用React应用程序作为前端。

我希望这些动态页面向django服务器发出一些http请求。我的理解是,我可以在前端使用axios,并使用Django Rest Framework处理后端的请求。

我认为当前的身份验证系统运行良好,我如何使用现有用户的会话向DRF发出axios请求?

用户登录后,使用以下命令从后端获取令牌:

axios.post(`http://localhost:${port_number}/${urlpattern}`, {
headers: {
'Content-Type': 'application/json',
data: {
username,
password
})
.then(response => {
console.log(`token: ${response.token}`);
})

例如,端口号可以是8000,url模式可以是/api/auth/login。这个答案主要来自上一篇参考文献。

参考

Youtube。全栈React&Django[1]-基本REST API。https://www.youtube.com/watch?v=Uyei2iDA4Hs.(2021年4月23日查阅(。

Youtube。全栈React&Django[2]-实现React。https://www.youtube.com/watch?v=GieYIzvdt2U.(2021年4月23日查阅(。

Youtube。全栈React&Django[3]-Redux&HTTP:。https://www.youtube.com/watch?v=BmL8iaLMnQ0.(2021年4月23日查阅(。

Youtube。全栈React&Django[4]-错误处理&警报。https://www.youtube.a/watch?v=Fia-GGgHpK0。(2021年4月23日查阅(。

Youtube。全栈React&Django[5]-Django令牌认证。https://www.youtube.com/watch?v=0d7cIfiydAc.(2021年4月23日查阅(。

Youtube。全栈React&Django[6]-Auth State&私人路线。https://www.youtube.com/watch?v=EmAc4wQikwY.(2021年4月23日查阅(。

如果您已经构建了urls.py文件,并且端点工作正常,那么您可以使用您的ip地址/端口启动django服务器,在axios中只需替换url。像这样。

axios({
method: 'post',
url: `http://${IP_ADRESS}:8000/api/auth/login`,
headers: {'Content-Type': 'application/json'},
data: {
username,
password,
},
})

不要忘记在settings.py 中的ALLOWED_HOST中设置您的IP地址

ALLOWED_HOSTS = ['IP_ADDRESS']

最新更新