ridi-django-oauth2

RIDI Django OAuth2 Library


Keywords
oauth2, oauth2-resource, ridi, ridibooks
License
MIT
Install
pip install ridi-django-oauth2==1.0.4

Documentation

django-oauth2

Build Status

Introduction

  • OAuth2 Resource ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ Django์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    • ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฆฌ๋””์˜ OAuth2 Resource ์„œ๋ฒ„ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž‘์„ฑ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Requirement

  • Django 2.0.0 or higher
  • Python 3.6 or higher

Usage

INSTALLED_APPS = [
    # ...
    'ridi_django_oauth2',
]

# Middleware Setting
MIDDLEWARE_CLASSES = (
    # ...
    'ridi_django_oauth2.middlewares.AuthenticationMiddleware',
)

AUTH_USER_MODEL = 'ridi_django_oauth2.RidiUser'


# RIDI Setting
RIDI_OAUTH2_KEY_URL = 'https://{auth_server_host}/oauth2/keys/public'
RIDI_OAUTH2_CLIENT_ID = 'this-is-client-id'
RIDI_OAUTH2_CLIENT_SECRET = 'this-is-client-secret'

RIDI_OAUTH2_AUTHORIZATION_URL = 'https://{auth_server_host}/oauth2/authorize/'
RIDI_OAUTH2_TOKEN_URL: 'https://{auth_server_host}/oauth2/token/'

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'ridi_django_oauth2.rest_framework.authentication.OAuth2Authentication',
    )
}

# OPTIONAL

# RIDI_OAUTH2_GET_USER_FROM_TOKEN_INFO ๋Š” user model์ด `u_idx` col๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์„์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

def _get_user_from_token_info(token_info):
    user, _ = get_user_model().objects.get_or_create(idx=token_info.u_idx)
    return user
     
RIDI_OAUTH2_GET_USER_FROM_TOKEN_INFO = _get_user_from_token_info

TODO

  • Write Docs
  • MySQL Test