Python 如何获取 token 如何使用?

本文介绍了如何在Python项目中创建一个公共模块,通过get_header.py获取并管理登录凭证(token),然后在query_api.py中构造请求头,最后在test_query.py中进行测试。涉及了requests库的使用和类方法的封装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、首先新建一个公共的文件common

为了获取token,方便调用

 二、在common文件夹下,新建文件get_header.py,(我们获取token的目的是为了给下一个接口拼接调用,我们直接拼接好,再传出去)

""" 获取登录成功的令牌,拼接到请求头,返回"""

# 定义函数
import requests

# 封装请求头
def get_header():
    url = "" # 自己抓取的url
    data = {} # 自己抓取的body
    res = requests.post(url=url, json=data)
    # 从响应体中获取 token   
    token = res.json().get("head").get("token")

    header = {"Content-Type": "application/json",
              "token": token}

    # 上面的 header 拼接用不了,可以试一下,下面的 header 拼接
    # header = {"Content-Type": "application/json",
    #           "Authorization": "Bearer " + token}  # "Bearer " 后面一定要有空格
    return header

if __name__ == '__main__':
    print(get_header())

三、 新建一个api 文件

新建一个文件 query_api.py

import requests

class QueryApi(object):
    @classmethod
    def query_hco(cls, header):
        url = "" # 下一个接口的url
        resp = requests.get(url=url, headers=header)
        return resp

 四、新建一个文件test_query.py 调用,QueryApi和get_header

import unittest

from api.query_api import QueryApi
from common.get_header import get_header

class TestQuery(unittest.TestCase):
    # 类属性
    header = None

    # 每次项目开始调用一次,获取最新的token
    @classmethod
    def setUpClass(cls) -> None:
        cls.header = get_header()


    def test_query(self):
        resp = QueryApi.query_hco(self.header)
        print(resp.json())

if __name__ == '__main__':
    print(TestQuery())

Python获取token通常是在处理API请求时需要的一种授权机制。这可以用于访问某些受保护的服务,比如社交媒体平台的数据、支付网关或其他需要身份验证的应用程序。这里是一个基本步骤: 1. **OAuth 2.0** (最常见的做法): - 首先,你需要注册一个应用从服务提供商那里获得客户端ID和客户端密钥(也叫client_id和client_secret)。 - 使用requests库,例如`requests_oauthlib`库,通过发起一个授权请求到OAuth服务器获取临时令牌(access_token)。这个过程通常涉及`auth`参数和`redirect_uri`。 ```python from requests_oauthlib import OAuth2Session client_id = 'your_client_id' client_secret = 'your_client_secret' oauth = OAuth2Session(client_id) authorization_url, state = oauth.authorization_url('https://example.com/oauth/authorize') # 用户浏览器会跳转到这里,完成授权后返回授权码 access_code = input("Enter the authorization code: ") token = oauth.fetch_token( 'https://example.com/oauth/token', client_id=client_id, client_secret=client_secret, code=access_code) ``` 2. **使用JWT(JSON Web Tokens)**: 对于一些不需要持续授权的情况,你可以获取一个JSON Web Token(JWT),这是一种自包含的安全令牌。使用`PyJWT`库可以帮助创建和解析JWTs。 ```python import jwt secret_key = 'your_jwt_secret_key' payload = {'username': 'user', 'iat': time.time()} encoded_token = jwt.encode(payload, secret_key, algorithm='HS256') ``` 记得替换上述代码中的URL、参数和密钥等为你实际应用中的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值