Make SITE_URL
optional.
This commit is contained in:
parent
497f2f3a68
commit
be5656bcf4
7 changed files with 75 additions and 27 deletions
|
@ -13,12 +13,31 @@ def redirect(uri):
|
|||
return response
|
||||
|
||||
|
||||
def get_issuer():
|
||||
def get_site_url(site_url=None, request=None):
|
||||
"""
|
||||
Construct the site url.
|
||||
|
||||
Orders to decide site url:
|
||||
1. valid `site_url` parameter
|
||||
2. valid `SITE_URL` in settings
|
||||
3. construct from `request` object
|
||||
"""
|
||||
site_url = site_url or settings.get('SITE_URL')
|
||||
if site_url:
|
||||
return site_url
|
||||
elif request:
|
||||
return '{}://{}'.format(request.scheme, request.get_host())
|
||||
else:
|
||||
raise Exception('Either pass `site_url`, '
|
||||
'or set `SITE_URL` in settings, '
|
||||
'or pass `request` object.')
|
||||
|
||||
def get_issuer(site_url=None, request=None):
|
||||
"""
|
||||
Construct the issuer full url. Basically is the site url with some path
|
||||
appended.
|
||||
"""
|
||||
site_url = settings.get('SITE_URL')
|
||||
site_url = get_site_url(site_url=site_url, request=request)
|
||||
path = reverse('oidc_provider:provider_info') \
|
||||
.split('/.well-known/openid-configuration')[0]
|
||||
issuer = site_url + path
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
from base64 import urlsafe_b64decode, urlsafe_b64encode
|
||||
from datetime import timedelta
|
||||
import time
|
||||
import uuid
|
||||
|
||||
from Crypto.PublicKey.RSA import importKey
|
||||
from django.utils import timezone
|
||||
from hashlib import md5
|
||||
from jwkest.jwk import RSAKey as jwk_RSAKey
|
||||
from jwkest.jwk import SYMKey
|
||||
from jwkest.jws import JWS
|
||||
|
@ -15,7 +13,7 @@ from oidc_provider.models import *
|
|||
from oidc_provider import settings
|
||||
|
||||
|
||||
def create_id_token(user, aud, nonce):
|
||||
def create_id_token(user, aud, nonce, request=None):
|
||||
"""
|
||||
Receives a user object and aud (audience).
|
||||
Then creates the id_token dictionary.
|
||||
|
@ -35,7 +33,7 @@ def create_id_token(user, aud, nonce):
|
|||
auth_time = int(time.mktime(user_auth_time.timetuple()))
|
||||
|
||||
dic = {
|
||||
'iss': get_issuer(),
|
||||
'iss': get_issuer(request=request),
|
||||
'sub': sub,
|
||||
'aud': str(aud),
|
||||
'exp': exp_time,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue