我正在拼命地了解如何在Django中使用JWT auth .
此页面说明如何获取用户名和密码的令牌:
http://getblimp.github.io/django-rest-framework-jwt/
$ curl -X POST -H "Content-Type: application/json" -d '{"username":"admin","password":"password123"}' http://localhost:8000/api-token-auth/
Now in order to access protected api urls you must include the Authorization: JWT <your_token> header.
1)如何从服务器获取"logged in"用户的用户详细信息(id,email ..)?如果我使用基于会话的auth,我会序列化并返回 request.user
,如果它's logged in. I don't了解服务器如何知道谁是谁,如果没有任何auth相关的持久性 .
2)我甚至不理解该页面中描述的程序是如何安全的 . 为什么攻击者不能劫持令牌并做他想做的事情?据我所知,我只是得到一个令牌,然后在每个请求中发回相同的令牌 . 这甚至是真正的JWT吗?
1 回答
您使用典型的Django auth机制与JWT .
request.user
,您可以像平常一样使用它您绝对必须调查JWT刷新令牌机制 . 代币通常是短暂的,我认为默认是5分钟 .