一个验证登录的程序: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 简单编写一个验证登录的案例

Flask表单

Flask使用Python Web轻量级框架Flask实现登录功能

Flask10 登录模块表单框架表单渲染表单验证bookie请求之前钩子g对象编写装饰器

Python Flask装饰器登录验证

Flask发送注册邮件