跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • django 中使用 token 的问题
未分類
15 4 月 2020

django 中使用 token 的问题

django 中使用 token 的问题

資深大佬 : kayseen 58

已知在 drf 框架中有一套完整的 jwt 鉴权机制,在请求头添加 Authorization 字段以及 token 就可以自动校验用户,然后在视图中直接使用 request.user 就可以获取当前的登录用户;

然后现在使用django,发现官方文档只有 session 认证,如果自定义装饰器实现 token 认证的话,request.user以及request.user.is_authenticated就无法使用了,

问题:

1.如何在 django 中使用 token 认证

2.如何在 django 的视图中使用 request.user 获取当前用户对象(必须使用 session 认证才能使用吗?)

大佬有話說 (15)

  • 資深大佬 : wuwukai007

    重写 requests.user 以及 is_authenticated 方法,替换成 jwt 的认证结果,类似 is_authenticated 等价于那个 jwt 的验证方法,

  • 資深大佬 : wuwukai007

    相当于打了个猴子补丁

  • 資深大佬 : XiaoxiaoPu

    request.user 是通过 middleware 实现的,你自然可以实现自己的 middleware 来支持 jwt 认证。官方有相关文档: docs.djangoproject.com/en/3.0/topics/auth/customizing/

  • 資深大佬 : MissThee

    感觉好像以前用 springboot,改 security 用 jwt 做验证的情况,要自己加过滤器修改一些验证流程。当时还纠结这么搞对不对,后来发现类似框架差不多都这么干。。。

  • 資深大佬 : ytmsdy

    middleware 中加入 token 认证,然后将识别出来的用户放到 request.user 里面去。

  • 資深大佬 : yulang

    我记得好像有一个 drf-jwt 的库,你找找

  • 主 資深大佬 : kayseen

    @wuwukai007
    @XiaoxiaoPu
    @ytmsdy
    @MissThee
    想问下各位在 django 中使用的是 session 还是 token 呢?
    我看了下中间件的源码,如果改 session 为 token 的话牵扯很多方法都要改,大家都是怎么实现认证的呢

  • 主 資深大佬 : kayseen

    @yulang
    谢谢哈,drf 中的我知道,这个是在 django 中用的

  • 資深大佬 : ytmsdy

    @kayseen session 和 token 并用。如果是 API 提交上来的,那就 jwt 的认证方式来处理。
    同时在登录的时候,也在 django 进行登录授权。
    这样就保持了两种认证都登录成功的状态。
    参考这里
    https://gist.github.com/jhshengxy/241b070490569530bae586e0a97179ee

  • 資深大佬 : midtin

    相信这个能够帮到你
    https://docs.djangoproject.com/en/3.0/topics/auth/customizing/#writing-an-authentication-backend

  • 資深大佬 : Marmot

    我以前是自己替换的中间件

  • 主 資深大佬 : kayseen

    @midtin 这个源码我看过了,这是重写用户登录方法的吧,和我说的认证并不在一起

  • 主 資深大佬 : kayseen

    @ytmsdy
    多谢多谢

  • 主 資深大佬 : kayseen

    @Marmot 好滴,谢谢哈

  • 資深大佬 : alaikis

    自己实现在一个 MIDDLEWARE 或则一个过滤器不就可以了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具