bitjws身份验证的烧瓶扩展。

Flask-bitjws的Python项目详细描述


毕加索烧瓶bitjws pypi版本
身份验证。

r/>`secp256k1<;https://github.com/bitcoin/secp256k1>;``是可用的,因此
在继续之前安装它;确保运行
``./configure--enable module recovery``。如果您正在使用提供此功能所需的其他库,请检查bitjws自述文件中的
**使用自定义库**部分。


>可以通过运行以下命令安装烧瓶bitjws:

``pip install flask bitjws`

building secp256k1''

如果需要安装``secp256k1``c库,建议使用以下
命令序列。如果已经有了"secp256k1",请确保它是根据预期的git提交编译的,否则可能会因为api不兼容而无法工作。






git clone git://github.com/bitcoin/secp256k1.git libsecp256k1
cd libsecp256k1
git checkout d7eb1ae96dfe9d497A26B3E7FF8B6F58E61E400A
./autogen.sh
./configure——启用模块恢复
make
sudo make install

提供烧瓶应用程序包装。要启用
bitjws身份验证,请使用flaskbitjws应用程序作为
第一个参数初始化flaskbitjws。

。代码::python

from flask import flask

a/flask login>;``用于管理
用户登录和身份验证。默认情况下,
flaskbitjws初始化将为您创建一个新的loginmanager。
如果需要自定义,您可以交替提供自己的loginmanager。只需注意它的请求加载程序需要保持原样。代码::python

from flask import flask
from flask bitjws import flaskbitjws
from flask.ext.login import loginmanager

使用私钥进行大小调整
'''''''''''''''''''''''''''''''''''''''''



若要为服务器提供用于签名的私钥,请在应用程序中包含一个
privkey参数。\**init**()。

。代码::python

from flask import flask
from flask bitjws import flaskbitjws

/>用法
---

两个新的属性"jws有效负载"和"jws头"。

Tkgpmvvd7vk7nlin6211xz2qgxlbmginaqw7mbbgp8"


@app.route('/user',methods=['post'])
@login\u required
def post\u user():
request.jws\u有效载荷应该存在并具有反序列化的jwt c。laimset
用户名=请求。jws_payload.get('username')
request.jws_header应该存在,并且具有发送方的公钥
address=request.jws戋header['kid']
user={'username':username,'address':address}
返回bitjws签名并格式化的响应
return cur租用应用程序。创建bitjws响应(用户)

responses
"responses"
"responses"

准备响应时,使用create \"bitjws"响应方法
以bitjws格式构造响应。




response \"object={'可以是':'a dict','或任何':'valid json'}
return current_app.create_bitjws_response(response_object)

使用这个例子"database"是非常不安全的,而且
不稳定。建议为您自己的persistent
数据库提供绑定以供生产使用。这可以通过传递
``flaskbitjws.\uu init``两个函数来实现:get\\\\\\'u last\'u nonce和
get\\'u user\'u by\'u key。他们的名字应该是这样的。

'''''''''''''''''''''''''''''''




def get_last_nonce(app,key,nonce):
''
这个方法只是一个示例!用一个真正的nonce数据库替换它。

:param str key:nonce所属的公钥
:param int nonce:最新的nonce
"
uk=ses.query(userkey).filter(userkey.key==key)\
.filter(userkey.last\nonce<;nonce*1000).first()
如果不是英国:
返回none
last nonce=copy.copy(uk.last_nce)
如有可能,在上述相同的查询中更新数据库记录
uk.last_nce=nonce*1000
尝试:
ses.commit()
除e:
打印e
ses.rollback()
ses.flush()
返回lastonce



def get_user_by_key(app,key):
"
此方法仅是一个示例!替换为一个真正的用户数据库。

:param str key:用户所属的公钥
"
user=ses.query(slm_user).join(userkey).filter(userkey.key==key).first()
返回user

flaskbitjws(app,get_last_nonce=get_last_nonce,
get_user_by_key=get_user_by_key)

…| pypi版本图像::https://img.shields.io/pypi/v/flask bitjws.svg
:目标:https://pypi.python.org/pypi/flask bitjws/
…|构建状态图像::https://travis-ci.org/deginner/flask-bitjws.svg?branch=master
:目标:https://travis ci.org/deginner/flask bitjws
…|覆盖范围图像::https://coveralls.io/repos/deginner/flask-bitjws/badge.svg?branch=master&service=github
:目标:https://coveralls.io/github/deginner/flask-bitjws?分支=主
…| gitter图像::https://badges.gitter.im/join%20chat.svg
:目标:https://gitter.im/deginner/bitjws?utm_source=share link&utm_medium=link&utm_campaign=share link

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ApachePOI将excel文件导入postgreSQL表   java多线程从iText pdf提取文本   winapi Java和SetWindowDisplayAffinity   eclipse juno的java Websphere 6.1插件   java MPAndroidChart:为Y轴提供一些偏移   java中作为参数传递枚举类型的继承   java Gui jframe的工作原理与netbeans不同   使用Bouncy Castle和PDFBox在Java中验证PDF签名   优化缩小Java代码   java无法在安卓中从Firebase取回子数据   返回的java方法?我应该什么时候用?   java错误处理已完成,退出代码为1。与穿过阵列的for循环有关   多线程Java volatile是否阻止缓存或强制执行写缓存?   java Multi-collectItems如何提前终止并返回已收集的项目   java为什么不在服务(请求,响应)中直接调用processRequest(请求,响应)?   java如何从字符串生成int数组?   打印获取用户输入的值并在其他预选文本中显示。JAVA   未显示java DynamicAsper UTF8字符   java Eclipse RCP:不启动应用程序的命令行参数