Exemple #1
0
def password_grant(request):
    """
    Password grant short-cut.
    """
    django_request = oauth2_request_class()(request)
    grant = PasswordCredentialsGrant(oauth2_server, django_request)
    return grant.get_credential(OAUTH2_SETTINGS.ACCESS_TOKEN_EXPIRATION)
Exemple #2
0
def refresh_token_grant(request):
    """
    Refresh token grant short-cut.
    """
    django_request = oauth2_request_class()(request)
    grant = RefreshTokenGrant(oauth2_server, django_request)
    return grant.get_credential(OAUTH2_SETTINGS.ACCESS_TOKEN_EXPIRATION)
Exemple #3
0
def authorization_code_grant_step1(request):
    """
    Code grant step1 short-cut. This will return url with code.
    """
    django_request = oauth2_request_class()(request)
    grant = CodeGrant(oauth2_server, django_request)
    return grant.authorization()
Exemple #4
0
def authorization_code_grant_step2(request):
    """
    Code grant step2 short-cut. This will return access credential.
    """
    django_request = oauth2_request_class()(request)
    grant = CodeGrant(oauth2_server, django_request)
    credential = grant.get_credential(OAUTH2_SETTINGS.ACCESS_TOKEN_EXPIRATION)
    return credential
Exemple #5
0
def get_credential(request):
    """
    token process with django resource.
    Request must be secure and default available grant type is password, authorization_code, client_credentials,
    and refresh_token.
    """
    django_request = oauth2_request_class()(request)
    if django_request.grant_type == "password":
        return password_grant(request)
    elif django_request.grant_type == "authorization_code":
        return authorization_code_grant_step2(request)
    elif django_request.grant_type == "client_credentials":
        return implicit_grant(request)
    elif django_request.grant_type == "session":
        return session_grant(django_request.client_id, request.user.id, django_request.scope)
    elif django_request.grant_type == "refresh_token":
        return refresh_token_grant(request)
    else:
        return oauth2_server.get_credential_with_grant_type(django_request.grant_type, request)
Exemple #6
0
def authorization(request):
    """
    authorization process with django request.
    Request must be secure and default available response type is "code" and "token".
    """
    django_request = oauth2_request_class()(request)
    try:
        # if not request.is_secure():
        #     raise InvalidRequestError()
        if django_request.response_type == "code":
            return authorization_code_grant_step1(request)
        elif django_request.response_type == "token":
            return implicit_grant(request)
        raise UnsupportedResponseTypeError()
    except OAuth2Error as e:
        import traceback
        traceback.print_exc()
        if django_request.redirect_uri:
            return e.to_uri(django_request.redirect_uri)
        return e.to_uri(OAUTH2_SETTINGS.default_redirect_uri)
Exemple #7
0
def implicit_grant(request):
    """
    Implicit token grant short-cut.
    """
    return ImplicitGrant(oauth2_server, oauth2_request_class()(request)).get_redirection_uri(3600)