httbasicauth 验证问题

来源:1-1 Flask VS Django

NiRoa

2018-06-29

  File "E:\ApplicationData\pyenvs\FlaskBaseDemo-Nuy1F8Rf\lib\site-packages\flask_httpauth.py", line 136, in authenticate

    return self.verify_password_callback(username, client_password)

TypeError: add() takes 0 positional arguments but 2 were given


发现它根本不走,下面的这个方法
@auth.verify_password
def verify_password_token(token, password):

写回答

3回答

7七月

2018-07-05

直接下源代码 对比下吧

0
0

NiRoa

提问者

2018-07-03

这是token_auth代码

@auth.verify_password
def verify_password_token(token, password):
   # token
   # HTTP 账号密码
   # header key:value
   # account  qiyue
   # 123456
   # key=Authorization
   # value =basic base64(qiyue:123456)
   user_info = verify_auth_token(token)
   if not user_info:
       return False
   else:
       # request
       g.user = user_info
       return True

这是视图函数代码:

@api.route('/changepwd', methods=['POST'])
@auth.login_required
def change_password():
   """
   修改密码
   :return:
   """
   uid = g.user.id
   form = ChangePasswordForm().validate_for_api()
   success = User.change_password(uid, form.old_password.data, form.new_password1.data)
   if success:
       return Success(msg='你的密码已经更新')
   else:
       return Forbidden(msg='密码更新失败')


我在httpauth代码打了断点,感觉走到了这步? 但是在 token_auth 中@auth.verify_password
def verify_password_token(token, password): 打断点就是不进去 ,

//img.mukewang.com/szimg/5b3ae8de0001205111500267.jpg

之后走到这里了,调用这个 认证方法判断,
//img.mukewang.com/szimg/5b3ae9d5000168d014420374.jpg

直接就走到返回视图函数这里了,

//img.mukewang.com/szimg/5b3aea340001bef609650173.jpg

这个搞了老久了,感觉就快还要放弃了,找不到问题所在啊

0
0

7七月

2018-07-01

你这个报错了啊,看看代码

0
1
NiRoa
这是token_auth代码 @auth.verify_password def verify_password_token(token, password): # token # HTTP 账号密码 # header key:value # account qiyue # 123456 # key=Authorization # value =basic base64(qiyue:123456) user_info = verify_auth_token(token) if not user_info: return False else: # request g.user = user_info return True 这是视图函数代码: @api.route('/changepwd', methods=['POST']) @auth.login_required def change_password(): """ 修改密码 :return: """ uid = g.user.id form = ChangePasswordForm().validate_for_api() success = User.change_password(uid, form.old_password.data, form.new_password1.data) if success: return Success(msg='你的密码已经更新') else: return Forbidden(msg='密码更新失败') 我在httpauth代码打了断点,感觉走到了这步? 但是在 token_auth 中@auth.verify_password def verify_password_token(token, password): 打断点就是不进去 , //img.mukewang.com/szimg/5b3ae8de0001205111500267.jpg 之后走到这里了,调用这个 认证方法判断, //img.mukewang.com/szimg/5b3ae9d5000168d014420374.jpg 直接就走到返回视图函数这里了, //img.mukewang.com/szimg/5b3aea340001bef609650173.jpg 这个搞了老久了,感觉就快还要放弃了,找不到问题所在啊
2018-07-03
共1条回复

Python Flask高级编程之RESTFul API前后端分离精讲

RESTFul+权限管理+token令牌+扩展flask=提升编程思维

2037 学习 · 359 问题

查看课程