最安全的api接口认证

实现步骤:

1、客户端与服务器都存放着用于验证的Token字段,客户端在本地把自己的 用户名+时间戳+Token 组合进行MD5加密后生成一段新的md5-token。

2、客户端访问的时候携带:用户名、时间戳、md5-token。

3、服务端收到请求后,先判断用户名、时间戳是否合法、假设先判断发送过来的时间戳和现在的时间戳不能大于2分钟。

4、如果是在2分钟之内,到redis里查看有没有该用户为key对应的md5-token,并判断它和发送过来的md5-token是否相同,如果有相同,说明该md5-token已经请求过,不能在操作,如果没找到相同的md5-token,说明是第一次请求,把用户名为key,md5-token为vallue存入redis,存在时间设为2分钟。

5、如果以上都通过了,在去数据库取出用户名和Token字段像客户端一样的方式进行加密。对比两个加密字段,相同则通过验证。

 

1、例如我们在请求的url后带上 用户名+时间戳+加密的Token

客户端

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
BaseDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

Params = {
    "server": "127.0.0.1",
    "port":8000,
    'request_timeout':30,
    "urls":{
          "asset_report_no_id":"/asset/asset_report_no_id/",
          "asset_report":"/asset/asset_report/",
        },
    'asset_id_path':'%s/var/.asset_id' % BaseDir,
    'log_file': '%s/logs/run_log' % BaseDir,
    'auth':{
        'user':'123456789@qq.com',
        'token': 'abc'
        },
}
客户端settings

相关文章:

  • 2021-10-29
  • 2021-11-29
  • 2021-07-02
  • 2022-03-01
猜你喜欢
  • 2021-12-09
  • 2021-10-30
  • 2022-01-05
  • 2021-06-30
相关资源
相似解决方案