python+Rquests+yaml实现Rsa加密接口登录

前言:登录接口基本不会是明文传输,今天用python已rsa加密的账号密码登录获取登录成功的code,再已code换取token,获取测试其他接口所依赖的token

这里需要3个接口

1、Login接口

2、Rsa加密接口

3、code换token接口

每次测试如果用postman获取token的话,步骤就比较繁多

用python写好接口简单封装后,一键获取即可获得token

封装的包的组成

一、data.yaml  存放接口的入参

二、key.txt 存放Rsa加密的公钥密钥(因为公钥密码有格式排版要求,建议存放txt文件里,试了别的方法,读取出来都会报错,不知道为啥)

三、Request_page.py  是封装的接口登录方式

四、Get_Accesstoken.py  存放的是运行脚本(因为自己用,所以封装的比较简单)

import yaml
from Get_accessToken.Utils.Request_page import Helper
def read_yaml():
    f = open('Data/data.yaml', 'r', encoding='utf-8')
    data = yaml.load(f,Loader=yaml.FullLoader)
    # f.close()
    return data
class Get_AccessToken(Helper):
    def read_key(self):
        with open('Data/key.txt') as f:
            return f.read()
    def RSA_url(self):
        return read_yaml()['RSA_User_request_data']['url']
    def RSA_header(self):
        return read_yaml()['RSA_User_request_data']['headers']
    def Login_url(self):
        return read_yaml()['Login_request_data']['url']
    def Login_header(self):
        return read_yaml()['Login_request_data']['headers']
    def RSA_User(self,username):
        '''加密账号手机号'''
        payload = read_yaml()['RSA_User_request_data']['payload_user']
        payload['publicKey'] =self.read_key()
        payload['encStr'] =username
        r= self.post_data(url=self.RSA_url(),headers=self.RSA_header(),data=payload)
        return r.json()['data']
    def Rsa_Pwd(self,password):
        '''加密密码'''
        payload = read_yaml()['RSA_User_request_data']['payload_pwd']
        payload['publicKey'] = self.read_key()
        payload['encStr'] = password
        r= self.post_data(url=self.RSA_url(),headers=self.RSA_header(),data=payload)
        return r.json()['data']
    def Login(self,username,password):
        '''登录获取code,返回code'''
        url = self.Login_url()
        headers = self.Login_header()
        payload = read_yaml()['Login_request_data']['payload']
        payload['loginData']['account'] = self.RSA_User(username)
        payload['loginData']['password'] = self.Rsa_Pwd(password)
        r= self.post_json(url=url,headers=headers,json=payload)
        if r.json()['code']== 0 :
            print(r.json()['msg']+'账号登录成功')
            return r.json()["data"]["code"]
        else:
            print(r.json()['code'])
    def Code_token(self,username,password):
        '''code换token'''
        url = read_yaml()['Access_token']['url'] +str(self.Login(username,password))
        r = self.get(url=url)
        print('AccessToken:'+r.json()["data"]["AccessToken"])
if __name__ == '__main__':
    Get_AccessToken().Code_token('账号', '密码')




五、

read_yaml()函数是读取yaml文件
read_key()方法是获取txt文本的公钥

其他就没啥了,看下返回结果

获取的token用于其他接口的使用,比如,绑定解绑,查询绑定关系,根据日常工作的需要

希望能帮助到有需要的人

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔子骑乌龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值