oauth2.0 的簡單操作步驟
推薦包 - django-oauth-toolkit
pip install django-oauth-toolkit
Django後臺配置使用
- 配置
# settings.py INSTALLED_APPS = ( ... 'oauth2_provider', ... )
- 添加oauth2.0應用的URL
urlpatterns = [ ... path('o/', include('oauth2_provider.urls', namespace='oauth2_provider')), ]
- 包含
- 創建屬於自己應用的application URL
o/applications/
- 權限認證URL
o/authorize/
- 創建屬於自己應用的application URL
- 包含
- 數據庫遷移
python manage.py migrate oauth2_provider
- 自定義權限
OAUTH2_PROVIDER = { # this is the list of available scopes 'SCOPES': { 'read': '讀取', 'write': '修改' } }
- 視圖使用
# 設置改視圖爲只讀 from oauth2_provider.contrib.rest_framework import TokenHasScope class UserView(..APIView): permission_classes = [TokenHasScope] required_scopes = ['read']
oauth2.0具體使用步驟 (grant_type=password)
- 首先需要創建一個 application
訪問URL: http://localhost:8000/o/applications/ 訪問方式: GET # 當然你首先需要確定你安裝了oauth2.0,並且正確; # 如果存在問題,查看官方文檔進行對應的安裝即可
- 根據自己創建 application 的 client_id 去生成 token
訪問URL: http://localhost:8000/o/token/ 訪問方式: POST 請求參數: { grant_type:password # 方式有四種,取一種舉例;必傳 client_id:YOUR CLIENT_ID # 必傳 username:USER EMAIL # 必傳 password:USERPASSWORD # 必傳 }
- 根據 token 去進行登錄,請求頭中進行設置 token
注意: Bearer 後邊要加上一個空格假設你去訪問你係統的API爲http://localhost:8000/users/ 訪問URL: http://localhost:8000/users/ 訪問方式: GET 訪問headers設置: { "Authorization": "Bearer " + YOUR TOKEN }