找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 137|回复: 4

[求助] wei'xin小程序request里面怎么传token才能被Python HTTPBasicAuth捕.....

1

主题

3

帖子

3

积分

贫民

积分
3
天行哥 发表于 2019-9-24 17:04:12 | 显示全部楼层 |阅读模式
后端使用Python flask写的,token验证使用的HTTPBasicAuth,通过Postman添加Authorization,可以请求成功
但是在前端小程序里发送网络请求时,header里面增加header.Authorization = "basic " + base64(token),无法被Python HTTPBasicAuth捕获到
注:base64()是一个js的base64编码方法
求,有木有大神用过HTTPBasicAuth,以及怎么在前端请求里包装Authorization才有效啊

回复

使用道具 举报

0

主题

526

帖子

526

积分

骑士

积分
526
sheeboard 发表于 2019-9-26 20:30:05 | 显示全部楼层

requests 的代码很简单,如下
from requests.auth import HTTPBasicAuth
requests.get('https://demo.example.com/resource/path',
auth=HTTPBasicAuth('user-ID', 'password'))

不行的话抓postman的包看header里的内容。
回复 支持 反对

使用道具 举报

0

主题

526

帖子

526

积分

骑士

积分
526
sheeboard 发表于 2019-9-26 20:37:51 | 显示全部楼层
还有确认是basic anthentication,而不是oauth吗,我看过类似代码,是用base64生成客户端token用的
Oauth1方法
>>> import requests
>>> from requests_oauthlib import OAuth1
>>> auth = OAuth1('<c**umer key>', '<c**umer secret>',
'<user oauth token>', '<user oauth token secret>')
>>> requests.get('https://demo.example.com/resource/path', auth=auth)
回复 支持 反对

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
天行哥  楼主| 发表于 2019-9-27 16:00:18 | 显示全部楼层
WX20190927-155417.png 1569570516209.jpg
postman里面的header,只要在Authorization里面Username字段配置了token,headers里面会自动生成一对key:value,Basic后面的字符串是postman自动生成的base64编码

在前端的请求头里我也是这么加的key和value啊,唯一区别是,Basic后面的这段字符串,通过JS编码出来的base64编码和postman里面自动编码出来的这个字符串,后4位不一样,JS生成的是带有两个==的,postman生成的只有一个=

然后postman发送的请求,Python HTTPBasicAuth就能捕获到token,前端请求带的Authorization字段不能被捕获
不知啥原因
回复 支持 反对

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
天行哥  楼主| 发表于 2019-9-27 16:05:29 | 显示全部楼层
sheeboard 发表于 2019-9-26 20:37
还有确认是basic anthentication,而不是oauth吗,我看过类似代码,是用base64生成客户端token用的
Oauth1方 ...

谢谢回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表