Using OAuth2 with Django

78 views
Skip to first unread message

Derek Dong

unread,
Jun 26, 2019, 11:14:47 PM6/26/19
to Django users
So I've been trying to learn how to authenticate users in my Django application with OAuth.
The token provider has already been established, and the provided documentation is here: https://ion.readthedocs.io/en/latest/developing/oauth.html
However, once I've followed the instructions in the "Python" part I got confused. I successfully logged in using my Ion account, but when I went to the admin page (localhost:8000/admin)
I got __init__() missing 1 required positional argument: 'strategy'

views.py:
def login(request):
oauth = OAuth2Session("SsRYDH1iY6jqLO6rSVnF3A1NtYz4Y3fiO9qUMNAX", redirect_uri="http://127.0.0.1:8000/callback",scope=["read", "write"])
authorization_url, state = oauth.authorization_url("https://ion.tjhsst.edu/oauth/authorize/")
return redirect(authorization_url)

def callback(request):
oauth = OAuth2Session("SsRYDH1iY6jqLO6rSVnF3A1NtYz4Y3fiO9qUMNAX", redirect_uri="http://127.0.0.1:8000/callback", scope=["read", "write"])
code = request.GET.get('code', None)
token = oauth.fetch_token("https://ion.tjhsst.edu/oauth/token/", code=code, client_secret="H78F4vUYd1uTtRSQcCWm0IrSesEhRAXNNh2JRe8KG0LyaJAPY2cPFhIQtKfzqKtMNk6vQxbuOAW2WfedjyNdJ4TLobwKh3NLfe2Am9NNL95T28XTPZWItLqRLKnJOdDu")
return render(request, 'index.html')

urls.py:
path(r'oauth/', views.login, name='login'),
path(r'callback/', views.callback, name='callback'),

settings.py:
INSTALLED_APPS = (
    ...
'users.apps.UsersConfig',
'ion_oauth',
)

How am I supposed to do this? I had already implemented an internal login/logout system through Django's forms, but I want to authenticate it through the provided servers. Thanks!

Aldian Fazrihady

unread,
Jun 27, 2019, 4:42:03 AM6/27/19
to django...@googlegroups.com
Hi Derek,

If you are using Django OAuth Toolkit there is authorization URL in this path: /o/authorize Regards,

Aldian Fazrihady

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7022da04-ff84-400b-8e24-78327417d4f3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages