Flask extension for pybankid client
Flask-PyBankID的Python项目详细描述
用于在站点上使用PyBankID的烧瓶扩展。
一个example web application using PyBankID and Flask-PyBankID 在{a7}上的部署状态中可以找到并存在。
安装
烧瓶pybankid是pip可安装的:
$ pip install Flask-PyBankID
您可以安装最新的开发快照,如下所示:
$ pip install https://github.com/hbldh/flask-pybankid/tarball/master#egg=Flask-PyBankID
开发
源代码托管在GitHub中。
用法
flask pybankid包添加了一个pybankid类,该类可在启动烧瓶应用程序时使用:
fromflaskimportFlaskfromflask_pybankidimportPyBankIDapp=Flask(__name__)bankid=PyBankID(app)
bankid客户端的配置是通过烧瓶的常规参数来完成的:
PYBANKID_CERT_PATH='path/to/certificate.pem'PYBANKID_KEY_PATH='path/to/key.pem'PYBANKID_TEST_SERVER=True
如果需要多个具有不同设置的bankid客户机,一个 可以将前缀pybankid改为任意选择的前缀, 并使用额外的关键字config_prefix='my_prefix'
启动pybankid扩展pybankid包装器为您的站点添加了三个api端点,它们都接受get请求:
- /authenticate/yyymmddxxxx
- 启动银行标识身份验证会话。
- /sign/yyymmddxxxx
- 启动银行标识签名会话(也需要发送数据;请参见下文)。
- /collect/<;orderef>;
- 收集具有按顺序发送的引用uuid的会话的签名状态。
然后可以从后端或前端调用这些端点。这里有一些 jquery ajax前端使用示例:
验证示例
functionauthenticate(nationalIDNumber){$.ajax({type:"GET",url:"/authenticate/"+nationalIDNumber,error:function(xhr,statusText){console.log(xhr.responseJSON.message);return{};},success:function(data){returndata;}});});
符号示例
functionsign(nationalIDNumber,userVisibleData){$.ajax({type:"GET",url:"/sign/"+nationalIDNumber,data:{'userVisibleData':'Signera med Personnummer: '+nationalIDNumber},error:function(xhr,statusText){console.log(xhr.responseJSON.message);return{};},success:function(data){returndata;}});});
收集示例
functioncollect(orderRef){$.ajax({type:"GET",url:"/collect/"+orderRef,error:function(xhr,statusText){console.log(xhr.responseJSON.message);return{};},success:function(data){returndata;}});});
测试
烧瓶pybankid溶液的测试方法如下:
python setup.py test
或者使用pytest:
py.test tests/