OneID 与 Flask 应用程序集成,(仅适用于乌兹别克斯坦)
项目描述
Flask-OneID
仅适用于乌兹别克斯坦
Flask 应用程序的 OneID 集成
链接
这个怎么运作
安装
pip install Flask-OneID
将您的凭据从 OneID 添加到配置文件
ONEID_LOGIN = "your login"
ONEID_PASSWORD = "your pasword"
ONEID_URL = "url from OneID" # defaul https://sso.egov.uz/sso/oauth/Authorization.do
使用 OneID 创建 Flask 应用程序
from flask_oneid import OneID
from flask import *
def create_app():
oneid = OneID()
app = Flask(__name__)
app.config.from_pyfile('config.py')
oneid.init_app(app)
@app.route("/", methods=['GET'])
def index():
return "Hello World"
return app
app = create_app()
if __name__ == "__main__":
app.run(debug=True)
添加路由以从 OneId 捕获数据
@app.route("/params", methods=['GET'])
def params():
print(request.args)
return redirect(url_for('index'))
使用内置函数将请求参数转换为字典
@app.route("/params", methods=['GET'])
def params():
data = oneid.Params_To_Dict(request.args)
print(data)
return redirect(url_for('index'))
注册 OneID 模块的回调 URL
with app.test_request_context():
oneid.Set_Callback(url_for('params'))
完整代码
from flask_oneid import OneID
from flask import *
def create_app():
oneid = OneID()
app = Flask(__name__)
app.config.from_pyfile('config.py')
oneid.init_app(app)
@app.route("/", methods=['GET'])
def index():
return "Hello World"
@app.route("/params", methods=['GET'])
def params():
data = oneid.Params_To_Dict(request.args)
return jsonify(data)
with app.test_request_context():
oneid.Set_Callback(url_for('params'))
return app
app = create_app()
if __name__ == "__main__":
app.run(debug=True)
OneID 路由
运行应用程序后转到路由/oneid/login以登录 oneid 并获取有关用户的数据
返回数据
回调中的数据示例
{
"_pport_expr_date": "",
"_pport_issue_date": "",
"birth_date": "",
"birth_place": "",
"ctzn": "",
"email": "",
"first_name": "",
"full_name": "",
"gd": "",
"legal_info": null,
"mid_name": "",
"mob_phone_no": "",
"natn": "",
"per_adr": "",
"pin": "",
"pport_expr_date": "",
"pport_issue_date": "",
"pport_issue_place": "",
"pport_no": "",
"ret_cd": "",
"sess_id": "",
"sur_name": "",
"tin": "",
"user_id": "",
"user_type": "",
"valid": ""
}
你可以用它来创建用户并使用 Flask-Admin 登录
执照
该项目在 MIT 许可下获得许可(LICENSE详情请参阅文件)。