请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

jwt怎么设置post验证token,get不验证token

authentication_classes = (JSONWebTokenAuthentication, SessionAuthentication)
这个配置貌似只能限制class而不能限制get方法和post方法,不知道有没有什么方法可以让get跳过验证。
我在前端添加的权限config.headers.Authorization = 'JWT ’ + token;结果发现后段使用APIView的都会进行用户验证,怎么配置哪些class和get post不进行验证

authentication_classes = ()配置成这样就不会对class进行用户认证了,不知道get怎么配置不验证

authentication_classes = (JSONWebTokenAuthentication,)
permission_classes = (IsAuthenticatedOrReadOnly,)
这样设置还是返回401未认证

正在回答 回答被采纳积分+3

插入代码

1回答

Ethreal 2019-02-17 09:06:09

不写任何认证和权限类可以,或者另起一个类,或者继承更底层的在方法里做判断如果是get方法 权限和认证类都是空,post在规定权限类,没测试过可以试试

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉0036235932 #1
    谢谢老师的回答,我已经解决此问题了,原因是rest_framework_jwt和rest_framework并没有做到很好的兼容,导致
    authentication_classes = (JSONWebTokenAuthentication,)
    permission_classes = (IsAuthenticatedOrReadOnly,)
    这两个配置,只在JSONWebTokenAuthentication中验证失败后就直接返回401了,根本就没有走到permission_classes中,这个问题我在官方github也找到相同的issue了,但是并每人给出答案,起始做法很简单,就是重写JSONWebTokenAuthentication中的get_jwt_value,具体的代码我在博客中记录了https://www.codeobj.com/?p=655,非常简单的处理
    回复 有任何疑惑可以回复我~ 2019-02-18 09:19:33
  • Ethreal 回复 提问者 慕粉0036235932 #2
    厉害 学习了
    回复 有任何疑惑可以回复我~ 2019-02-18 09:35:40
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号