diff --git a/common/djangoapps/student/tests/test_login.py b/common/djangoapps/student/tests/test_login.py
index b35be74..eb3183a 100644
--- a/common/djangoapps/student/tests/test_login.py
+++ b/common/djangoapps/student/tests/test_login.py
@@ -485,6 +485,7 @@ class LoginOAuthTokenMixin(object):
         self._setup_user_response(success=True)
         response = self.client.post(self.url, {"access_token": "dummy"})
         self.assertEqual(response.status_code, 204)
+        self.assertEqual(self.client.session['_auth_user_id'], self.user.id)
 
     def test_invalid_token(self):
         self._setup_user_response(success=False)
diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py
index 177c37d..0ebf497 100644
--- a/common/djangoapps/student/views.py
+++ b/common/djangoapps/student/views.py
@@ -1135,6 +1135,7 @@ def login_oauth_token(request, backend):
                 pass
             # do_auth can return a non-User object if it fails
             if user and isinstance(user, User):
+                login(request, user)
                 return JsonResponse(status=204)
             else:
                 # Ensure user does not re-enter the pipeline