服务器在线 - 服务器软件 - 网站地图 服务器在线,专注于服务器技术!

当前位置:主页 > 编程脚本 > Python > 正文

python requests验证登陆

时间:2022-09-25    来源:未知    投稿:admin    点击:

例:

from flask import Flask,request
import base64,time,random

app = Flask(__name__)

users = {
    "fwqzx": ["123456"]
}

def gen_token(uid):
    token = base64.b64encode(':'.join([str(uid), str(random.random()), str(time.time() * 7200)]))   #使用用户名,随机数,时间戳*7200秒,通过:分隔,生成一个token
    users[uid].append(token)
    return token


def verify_token(token):
    _token = base64.b64decode(token)         #对传进来的token进行解密
    if not users.get(_token.split(':')[0])[-1] == token:    #使用:进行切分,判断第一个变量(用户名),判断与之前生成好的token对比。
       return -1                #不致,返回-1
    if float(_token.split(':')[-1]) >= time.time():        #如果一致,验证token的时间是否过期。
        return 1              #如果有效,返回1
    else:
        return 0              #否则,返回0



@app.route('/',methods=['GET','POST'])
def index():
    print(request.headers)
    return "hello:"

@app.route('/login',methods=['GET','POST'])
def login():
    uid, pw = base64.b64decode(request.headers['Authorization'].split(' ')[-1]).split(':')
    if users.get(uid)[0] == pw:
        return gen_token(uid)
    else:
        return 'error'

@app.route('/test',methods=['GET','POST'])
def test():
    token = request.args.get('token')
    if verify_token(token) == 1:
        return 'data'
    else:
        return 'error'


if __name__ == '__main__':
    app.run()

如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。


相关内容
最新热点内容