django 搭建 oauth 开放平台

简介: 使用 (oauth2 server django)django2.1 + oauth server,搭建oauth server端,构建基础 开放平台。

项目使用django2.1 + oauth server 搭建开放平台代码。
开放给外部用户申请 appid, appkey,
源码地址

项目说明:

使用 (oauth2 server django)django2.1 + oauth server,搭建oauth server端,构建基础 开放平台。

项目亮点:

  1. 使用django2.1+python3.5 部署开放平台基础代码;
  2. 使用 anaconda 搭建环境,方便部署在不同服务器上;
  3. 与baidu音箱api对接完成,方便扩展使用;

项目部署说明

  • 使用anaconda3 download link 部署的开发环境 conda 4.7.12, pip 9.0.1
  • 项目使用 django 2.1.1, python3.5
  • 环境配置 environment.yaml
  • 扩展 requirements.txt
  • nginx+uwsgi 配置文件: nginx_oauth.conf

环境安装说明:

- install anaconda # 安装 anaconda
- conda create -n oauth python=3.5
- conda activate oauth # 激活虚拟空间
- conda env update -f environment.yaml # 导入环境
- pip install --upgrade pip # 升级 pip
- pip install -r requirements.txt # 导入需要的扩展
- python manage.py runserver 0.0.0.0:8003 # 测试
- python manage.py collectstatic # 
- uwsgi --ini uwsgi_oauth.ini # 启动 uwsgi 服务
- 配置nginx (配置文件位置: nginx_oauth.conf)

nginx配置参考文档:

https://www.centos.bz/2017/08/nginx-virtualenv-uwsgi-django/

使用说明:

  • 客户端
Authorize url: https://open.yourhost.com/o/authorize/
Token url: https://open.yourhost.com/o/token/

- 拼装URL https://open.yourhost.com/o/authorize?client_id=<your_client_id>&response_type=code&state=random_state_string
- 打开URL,登录并确认授权
- 页面会回调到 redirect url
- 通过 code 得到 access_token
- 通过 access token 请求数据
curl -X POST -H "Authorization: Bearer GruMdae4Oo7udKiWdVZOqr7O6BiiIF" https://open.yourhost.com/dueros/get_video_url

备注:

  • 导出与导入 requirements.txt environment.yaml
conda env export > environment.yaml # 客户端(导出)
conda env create -f environment.yaml # 服务器(导入环境)

pip freeze > requirements.txt # 客户端(导出)
pip install -r requirements.txt # 服务器(导入)

## nginx 服务常用命令
systemctl start nginx
systemctl stop nginx
systemctl reload nginx

## uwsgi 常用命令
uwsgi --ini uwsgi_oauth.ini
uwsgi --reload uwsgi_oauth.pid

参考信息

oauth Server端验证

- Get your token and use your API
curl -X POST -d "grant_type=password&username=<user_name>&password=<password>" -u"<client_id>:<client_secret>" http://localhost:8000/o/token/
curl -X POST -H "Authorization: Bearer l8UxYs6x3ETvq7pSTxKlK0ZDpRzQn4" -d "grant_type=password&username=<user_name>" http://localhost:8000/dueros/get_video_url

安装好oauth服务端,默认会有 o/applications/可以管理,现在我将applications各页面重写了。
重写的方法在management/views.py

管理员账号密码:
admin/admin

部分截图页面:

首页

应用列表有记录

授权页

确认授权

更多截图

conda 添加源

#查看环境变量:
(base) vip39@VM-0-15-ubuntu:~/src$ vim ~/.condarc
# 目前有的channels:
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - conda-forge
  - defaults
show_channel_urls: true
# bioconda需要放在第一位,优先搜索软件;forge第二位
目录
相关文章
|
API 数据安全/隐私保护 Python
django oauth toolkit-好用的Django OAuth 2 工具包
Django OAuth Toolkit可以帮助您开箱即用地提供将OAuth2功能添加到Django项目所需的所有端点,数据和逻辑。Django OAuth Toolkit广泛使用了出色的 OAuthLib,因此所有内容均 符合rfc要求。
django oauth toolkit-好用的Django OAuth 2 工具包
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
|
1月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
|
12天前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
48 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
21小时前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
24 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
1月前
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
|
1月前
|
监控 BI Python
python django教学质量评价系统,实现学生、教师、管理员不同角色管理
本文介绍了一个基于Django框架开发的教学质量评价系统,该系统为学生、教师和管理员提供了不同角色的管理和评价功能,实现了教学质量的全方位评估和管理,旨在提高教育质量和促进教学改革。
python django教学质量评价系统,实现学生、教师、管理员不同角色管理
|
1月前
|
人工智能 BI 数据处理
【优秀python django系统案例】基于python的医院挂号管理系统,角色包括医生、患者、管理员三种
本文介绍了一个基于Python开发的医院挂号管理系统,该系统包含医生、患者、管理员三种角色,旨在优化挂号流程,提高医疗服务质量和管理效率,并通过信息化手段提升患者就医体验和医院运营决策的数据支持能力。
【优秀python django系统案例】基于python的医院挂号管理系统,角色包括医生、患者、管理员三种
|
1月前
|
存储 关系型数据库 MySQL
基于python django 医院管理系统,多用户功能,包括管理员、用户、医生,数据库MySQL
本文介绍了一个基于Python Django框架开发的医院管理系统,该系统设计了管理员、用户和医生三个角色,具备多用户功能,并使用MySQL数据库进行数据存储和管理。
基于python django 医院管理系统,多用户功能,包括管理员、用户、医生,数据库MySQL
|
24天前
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器