日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

OAuth2.0(基于django2.1.2实现版本)

發布時間:2023/12/13 综合教程 23 生活家
生活随笔 收集整理的這篇文章主要介紹了 OAuth2.0(基于django2.1.2实现版本) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于python3.7

0),
你要先對OAuth2.0有一定的了解,建議先讀一下阮一峰的oauth2.0文章,直接看“授權碼模式”即可,帶著疑問再來讀本文效果更好。
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

1),
安裝python3.7
安裝虛擬環境virtualenv
pip install virtualenv

在磁盤上新建一個虛擬環境目錄,所謂虛擬環境,就是創建一個集成python的文件夾,例如,
mkdir oauth2 (本例在E盤根目錄下創建一個oauth2的項目目錄)
cd oauth2 (進入到oauth2目錄)
mkdir env (在oauth2目錄中創建一個虛擬環境,名稱為env)
cd env (進入到env目錄)
cd Scripts (進入到env目錄的Scripts文件夾下)
activate (在當前目錄下執行'activate'命令,開啟虛擬python3.7環境)

執行完以上步驟后,命令行出現提示符(大致)如下:
(env) E:oauth2envScripts> (命令行最前面出現"(env)"字符說明已經在虛擬環境中了)
接下來切換到oauth2目錄,按照步驟2開始安裝依賴包
(env) E:oauth2>

2),
pip安裝依賴:
(env) E:oauth2> pip install django==2.1.2
(env) E:oauth2> pip install requests==2.19.1
(env) E:oauth2> pip install pymysql==0.9.2

安裝完畢后,查看所有依賴包(安裝上面三個包時,會自動安裝包的依賴),
(env) E:oauth2> pip freeze
asn1crypto==0.24.0
certifi==2018.10.15
cffi==1.11.5
chardet==3.0.4
cryptography==2.3.1
Django==2.1.2
idna==2.7
pycparser==2.19
PyMySQL==0.9.2
pytz==2018.5
requests==2.19.1
six==1.11.0
urllib3==1.23

3),
創建django項目,
分別創建Oauth2.0的客戶端(client)和服務端(auther,本例驗證服務和資源服務器都在auther上)
建議打開兩個命令行界面,都進入到虛擬環境的"(env) E:oauth2>"目錄下,

client端:
(env) E:oauth2> django-admin startproject client
(env) E:oauth2> cd client
(env) E:oauth2client> python manage.py startapp oauthClient

auther端:
(env) E:oauth2> django-admin startproject auther
(env) E:oauth2> cd auther
(env) E:oauth2auther> python manage.py startapp oauthServer

4),
修改client基本配置,
用編輯器打開:E:oauth2clientclientsettings.py文件,修改
1,ALLOWED_HOSTS = ['192.168.10.18'] (添加允許訪問的IP地址,我的本地IP地址為192.168.10.18)

2,INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'oauthClient', (這里添加'oauthClient')
]

3,TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], (此處意思是設置client的模板目錄'E:oauth2client emplates')
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

4,DATABASES = {
# 刪除或者注釋掉原來的數據庫引擎
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }

# 設置數據庫的新引擎為mysql引擎
'default': {
'ENGINE': 'django.db.backends.mysql', #設置數據庫的引擎為mysql引擎
'NAME': 'dj_client', #數據庫名稱為dj_client
'USER': 'root', #數據庫用戶名為root
'PASSWORD': '123', #數據庫密碼為123
'HOST': '192.168.10.18', #數據庫地址為
'PORT': '3306', #數據庫端口號是3306
}
}

5,設置時區為中國上海
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

6,
django的默認數據庫引擎是sqlite3,上面第4步驟修改了數據庫引擎,但想要使用django的ORM操作機制,還需要修改E:oauth2clientclient\__init__.py文件
在文件中添加:
import pymysql
pymysql.install_as_MySQLdb()

5),
修改auther基本配置,
用編輯器打開:E:oauth2autherauthersettings.py文件,修改
1,ALLOWED_HOSTS = ['192.168.10.18'] (添加允許訪問的IP地址,我的本地IP地址為192.168.10.18)

2,INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'oauthServer', (這里添加'oauthServer')
]

3,TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], (此處意思是設置client的模板目錄'E:oauth2auther emplates')
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

4,DATABASES = {
# 刪除或者注釋掉原來的數據庫引擎
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }

# 設置數據庫的新引擎為mysql引擎
'default': {
'ENGINE': 'django.db.backends.mysql', #設置數據庫的引擎為mysql引擎
'NAME': 'dj_auther', #數據庫名稱為dj_auther
'USER': 'root', #數據庫用戶名為root
'PASSWORD': '123', #數據庫密碼為123
'HOST': '192.168.10.18', #數據庫地址為
'PORT': '3306', #數據庫端口號是3306
}
}

5,設置時區為中國上海
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

6,
django的默認數據庫引擎是sqlite3,上面第4步驟修改了數據庫引擎,但想要使用django的ORM操作機制,還需要修改E:oauth2autherauther\__init__.py文件
在文件中添加:
import pymysql
pymysql.install_as_MySQLdb()

6),
到此處配置工作已經完畢,接下來需要做以下動作:
1,必須手動創建dj_client和dj_auther兩個數據庫,然后如下操作

2,client端,
(env) E:oauth2client> python manage.py makemigrations #生成配置文件
(env) E:oauth2client> python manage.py migrate #根據配置文件創建數據庫相關

3,auther端,
(env) E:oauth2auther> python manage.py makemigrations #生成配置文件
(env) E:oauth2auther> python manage.py migrate #根據配置文件創建數據庫相關

3,運行client端
(env) E:oauth2client> python manage.py runserver 192.168.10.18:8001

4,運行auther端
(env) E:oauth2auther> python manage.py runserver 192.168.10.18:8002

7),
剩下請參照代碼部分,client代碼和auther代碼。

源碼github地址:

https://github.com/whisper540/OAuth2.0_Django2.1.2

總結

以上是生活随笔為你收集整理的OAuth2.0(基于django2.1.2实现版本)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。