Oauth2.0與Django的結合使用(二)

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')),
    ]
    
    • 包含
      1. 創建屬於自己應用的application URL o/applications/
      2. 權限認證URL o/authorize/
  • 數據庫遷移
    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)

  1. 首先需要創建一個 application
    訪問URL: http://localhost:8000/o/applications/
    訪問方式: GET 
    # 當然你首先需要確定你安裝了oauth2.0,並且正確;
    # 如果存在問題,查看官方文檔進行對應的安裝即可
    
  2. 根據自己創建 application 的 client_id 去生成 token
    訪問URL: http://localhost:8000/o/token/
    訪問方式: POST
    請求參數: {
    grant_type:password       # 方式有四種,取一種舉例;必傳
    client_id:YOUR CLIENT_ID  # 必傳
    username:USER EMAIL       # 必傳
    password:USERPASSWORD     # 必傳
    }
    
  3. 根據 token 去進行登錄,請求頭中進行設置 token
    假設你去訪問你係統的API爲http://localhost:8000/users/
    訪問URL: http://localhost:8000/users/
    訪問方式: GET
    訪問headers設置:
    	{
    	"Authorization": "Bearer " + YOUR TOKEN
    	}
    
    注意: Bearer 後邊要加上一個空格
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章