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 工具包
|
3天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
68 44
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
157 4
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
141 1
|
4天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
20 2
|
7天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
15 1
|
2月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
109 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
18天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
18 4
|
2月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
89 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
82 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台