一个验证登录的程序:python编写flask架构restful风格--2017年4月6日
Posted star
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个验证登录的程序:python编写flask架构restful风格--2017年4月6日相关的知识,希望对你有一定的参考价值。
一个验证登录的程序
摘抄自:极客学院-Python RESTful API开发工具介绍及应用 http://www.jikexueyuan.com/course/623.html
import base64 import time import random from flask import Flask,request app = Flask(__name__) users = { "magigo": ["123456"] } def gen_token(uid): token = base64.b64encode(‘:‘.join([str(uid),str(random.random()),str(time.time()+7200)])) users[uid].append(token) return token def verify_token(token): # print token _token = base64.b64decode(token) # print users.get(_token.split(‘:‘)[0])[-1] if not users.get(_token.split(‘:‘)[0])[-1] == token: return -1 if float(_token.split(‘:‘)[-1]) >= time.time(): return 1 else: return 0 @app.route(‘/index‘, methods=[‘POST‘,‘GET‘]) def hello_world(): print request.headers return ‘Hello World‘ @app.route(‘/login‘,methods=[‘POST‘,‘GET‘]) 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=[‘POST‘,‘GET‘]) def test(): token = request.args.get(‘token‘) if verify_token(token) == 1: return ‘data‘ else: return ‘error‘ if __name__==‘__main__‘: app.run(debug=True)
import requests r = requests.get(‘http://127.0.0.1:5000/login‘,auth=(‘magigo‘,‘123456‘)) print r.text token = ‘bWFnaWdvOjAuOTMxODYzMDIyNjA0OjE0OTE0Nzk3ODkuMDc=‘ r = requests.get(‘http://127.0.0.1:5000/test‘,params={‘token‘:token}) print r.text
以上是关于一个验证登录的程序:python编写flask架构restful风格--2017年4月6日的主要内容,如果未能解决你的问题,请参考以下文章
Flask使用Python Web轻量级框架Flask实现登录功能