Skip to content

Commit 6f86753

Browse files
awolfdenAdam WolfmanAdam Wolfman
authored
Refactor Django SSO app to use Sessions (#14)
* Remove domain from SSO app * Add sessions and conditional rendering to SSO app Co-authored-by: Adam Wolfman <[email protected]> Co-authored-by: Adam Wolfman <[email protected]>
1 parent 212a403 commit 6f86753

File tree

3 files changed

+24
-14
lines changed

3 files changed

+24
-14
lines changed

python-django-sso-example/sso/templates/sso/login_successful.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ <h2>Raw Profile Response Details</h2>
3232
<div class="text_box">
3333
<p>{{raw_profile}}</p>
3434
</div>
35+
<a href="/logout"><button class='button'>Logout</button></a>
3536
</div>
3637

3738
</div>

python-django-sso-example/sso/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
path('', views.login, name='login'),
77
path('auth', views.auth, name='auth'),
88
path('auth/callback', views.auth_callback, name='auth_callback'),
9+
path('logout', views.logout, name='logout'),
910
]

python-django-sso-example/sso/views.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,20 @@
2121

2222

2323
def login(request):
24-
return render(request, 'sso/login.html')
25-
26-
24+
print(request.session.get('session_active'))
25+
if request.session.get('session_active') == None:
26+
return render(request, 'sso/login.html')
27+
28+
if request.session.get('session_active') == True:
29+
print('this is the session', request.session)
30+
return render(request, 'sso/login_successful.html', {
31+
"p_profile": request.session.get('p_profile'),
32+
"first_name": request.session.get('first_name'),
33+
"raw_profile": request.session.get('raw_profile')
34+
})
35+
36+
2737
def auth(request):
28-
2938
authorization_url = workos.client.sso.get_authorization_url(
3039
connection= CONNECTION_ID,
3140
redirect_uri= REDIRECT_URI,
@@ -38,13 +47,12 @@ def auth_callback(request):
3847
code = request.GET['code']
3948
profile = workos.client.sso.get_profile_and_token(code)
4049
p_profile = profile.to_dict()
41-
print(p_profile)
42-
first_name = p_profile['profile']['first_name']
43-
44-
raw_profile = p_profile['profile']
45-
46-
return render(request, 'sso/login_successful.html', {
47-
"p_profile": p_profile,
48-
"first_name": first_name,
49-
"raw_profile": raw_profile
50-
})
50+
request.session['p_profile'] = p_profile
51+
request.session['first_name'] = p_profile['profile']['first_name']
52+
request.session['raw_profile'] = p_profile['profile']
53+
request.session['session_active'] = True
54+
return redirect('login')
55+
56+
def logout(request):
57+
request.session.clear()
58+
return redirect('login')

0 commit comments

Comments
 (0)