请教一个 Django rest_framework 的 Token 认证问题?

2017-04-04 14:21:58 +08:00
 willhunger

http://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication

这里是官方文档

Note that the default obtain_auth_token view explicitly uses JSON requests and responses, rather than using default renderer and parser classes in your settings. If you need a customized version of the obtain_auth_token view, you can do so by overriding the ObtainAuthToken view class, and using that in your url conf instead.

By default there are no permissions or throttling applied to the obtain_auth_token view. If you do wish to apply throttling you'll need to override the view class, and include them using the throttle_classes attribute.

这两段话不是很理解意思,我先说一下自己的理解,在问问大家是如何想的:

  1. 如果使用内置的 obtain_auth_token view 的和话,请求和相应都是通过 json 数据。 我现在使用 curl post 能够获得到账户的 token
  2. 如果要使用自己的认证方式,就是自己重写 ObtainAuthToken view 这个了类吗? 目前我的一点疑问是,自己定制的认证方式,是普通的表单传递认证还是啥? 如果实现自己的表单认证方式,我要如何去写,在这里好纠结,不知道如何表达
  3. 下面的那段话还不是很理解
5588 次点击
所在节点    Django
9 条回复
JasperYanky
2017-04-04 14:24:20 +08:00
用了 rest_auth ,就是干
willhunger
2017-04-04 14:31:21 +08:00
@JasperYanky #1 那我现在该如何做?/
JasperYanky
2017-04-04 14:52:36 +08:00
@willhunger 登录后 拿到 token 然后 request 的时候 放到 head 里面,就能认证了
willhunger
2017-04-04 15:55:24 +08:00
@JasperYanky 直接用表单 post 去认证就好了吧,
可是我的那个 token 过期和刷新如何解决?
JasperYanky
2017-04-04 16:06:41 +08:00
@willhunger 过期后只能重新登录 没有过期 可以刷新~ http://getblimp.github.io/django-rest-framework-jwt/#refresh-token
willhunger
2017-04-04 16:20:16 +08:00
@JasperYanky #5 这个可是基于 jwt 的
我晚上去试一下吧,不懂再来问
willhunger
2017-04-04 16:43:27 +08:00
@JasperYanky #5 https://github.com/aq1/henchman/tree/master/authentication
麻烦你看看是不是和这个类似,感觉就是写一套 api ,然后在 post 或者 get 得到要的信息?(´・_・`)
第一次了解这个,不是很懂
JasperYanky
2017-04-04 16:44:03 +08:00
@willhunger 类似的 自己也可以处理 不过不用自己折腾的话,直接拿来用也蛮好的~ 分分钟插件用起来就是干 :)
JasperYanky
2017-04-04 17:37:10 +08:00
@willhunger 是的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/352434

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX