Add default package settings. Edit README.
This commit is contained in:
parent
e268c1c047
commit
c323b0829b
4 changed files with 40 additions and 7 deletions
15
README.rst
15
README.rst
|
@ -46,9 +46,18 @@ Add the provider urls.
|
|||
# ...
|
||||
)
|
||||
|
||||
Finally, add a login view and ensure that has the same url defined in `LOGIN_URL` setting.
|
||||
********
|
||||
Settings
|
||||
********
|
||||
|
||||
See: https://docs.djangoproject.com/en/1.7/ref/settings/#login-url
|
||||
.. code:: python
|
||||
|
||||
# REQUIRED. Your server provider url.
|
||||
SITE_URL = 'http://localhost:8000'
|
||||
|
||||
# REQUIRED.
|
||||
# See: https://docs.djangoproject.com/en/1.7/ref/settings/#login-url
|
||||
LOGIN_URL = '/accounts/login/'
|
||||
|
||||
********************
|
||||
Create User & Client
|
||||
|
@ -61,7 +70,7 @@ Then let's create a Client. Start django shell: ``python manage.py shell``.
|
|||
.. code:: python
|
||||
|
||||
>>> from openid_provider.models import Client
|
||||
>>> c = Client(name='Some Client', client_id='123', client_secret='456', client_type='confidential', response_type='code', redirect_uris=['http://example.com/'])
|
||||
>>> c = Client(name='Some Client', client_id='123', client_secret='456', response_type='code', redirect_uris=['http://example.com/'])
|
||||
>>> c.save()
|
||||
|
||||
*******************
|
||||
|
|
|
@ -3,6 +3,7 @@ from openid_provider.lib.errors import *
|
|||
from openid_provider.lib.utils.params import *
|
||||
from openid_provider.lib.utils.token import *
|
||||
from openid_provider.models import *
|
||||
from openid_provider import settings
|
||||
import urllib
|
||||
|
||||
|
||||
|
@ -54,7 +55,7 @@ class TokenEndpoint(object):
|
|||
|
||||
id_token_dic = create_id_token_dic(
|
||||
self.code.user,
|
||||
'http://localhost:8000', # TODO: Add this into settings.
|
||||
settings.get('SITE_URL'),
|
||||
self.client.client_id)
|
||||
|
||||
token = create_token(
|
||||
|
|
23
openid_provider/settings.py
Normal file
23
openid_provider/settings.py
Normal file
|
@ -0,0 +1,23 @@
|
|||
from django.conf import settings
|
||||
|
||||
|
||||
class default_settings(object):
|
||||
|
||||
# Here goes all the package default settings.
|
||||
|
||||
LOGIN_URL = None
|
||||
|
||||
SITE_URL = None
|
||||
|
||||
def get(name):
|
||||
'''
|
||||
Helper function to use inside the package.
|
||||
'''
|
||||
try:
|
||||
value = getattr(default_settings, name)
|
||||
value = getattr(settings, name)
|
||||
except AttributeError:
|
||||
if value == None:
|
||||
raise Exception('You must set ' + name + ' in your settings.')
|
||||
|
||||
return value
|
|
@ -1,4 +1,3 @@
|
|||
from django.conf import settings
|
||||
from django.contrib.auth import REDIRECT_FIELD_NAME
|
||||
from django.contrib.auth.views import redirect_to_login
|
||||
from django.core.urlresolvers import reverse
|
||||
|
@ -11,6 +10,7 @@ from openid_provider.lib.errors import *
|
|||
from openid_provider.lib.endpoints.authorize import *
|
||||
from openid_provider.lib.endpoints.token import *
|
||||
from openid_provider.lib.endpoints.userinfo import *
|
||||
from openid_provider import settings
|
||||
|
||||
|
||||
class AuthorizeView(View):
|
||||
|
@ -24,7 +24,7 @@ class AuthorizeView(View):
|
|||
|
||||
if request.user.is_authenticated():
|
||||
|
||||
# This is for printing scopes in the form.
|
||||
# This is for printing scopes in form.
|
||||
authorize.params.scope_str = ' '.join(authorize.params.scope)
|
||||
|
||||
context = {
|
||||
|
@ -36,7 +36,7 @@ class AuthorizeView(View):
|
|||
else:
|
||||
path = request.get_full_path()
|
||||
return redirect_to_login(
|
||||
path, settings.LOGIN_URL, REDIRECT_FIELD_NAME)
|
||||
path, settings.get('LOGIN_URL'), REDIRECT_FIELD_NAME)
|
||||
|
||||
except (ClientIdError, RedirectUriError) as error:
|
||||
context = {
|
||||
|
|
Loading…
Reference in a new issue