diff --git a/backend/core/urls.py b/backend/core/urls.py
index f9b3345c6525e001776fd15597397f103d2dcf9b..7059e6e696f70688fbecb65ea93074d8c0fb7107 100644
--- a/backend/core/urls.py
+++ b/backend/core/urls.py
@@ -1,6 +1,6 @@
 from django.conf.urls import url
 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
-from rest_framework_jwt.views import obtain_jwt_token
+from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token
 
 from core import views
 
@@ -9,7 +9,8 @@ urlpatterns = [
     url(r'^api/student/submission/(?P<pk>[0-9]+)$', views.SubmissionApiView.as_view()),
     url(r'^api/student/submission/(?P<pk>[0-9]+)/feedback/$', views.FeedbackApiView.as_view()),
 
-    url(r'^api-token-auth/', obtain_jwt_token)
+    url(r'^api-token-auth/', obtain_jwt_token),
+    url(r'api-token-refresh', refresh_jwt_token),
 ]
 
 urlpatterns += staticfiles_urlpatterns()
diff --git a/backend/grady/settings/default.py b/backend/grady/settings/default.py
index 696cd59890a491e6cc09089f17397ddded9e51b9..a4a5fd8ef3c1be98356143de28bf1b12723a38e2 100644
--- a/backend/grady/settings/default.py
+++ b/backend/grady/settings/default.py
@@ -159,6 +159,7 @@ REST_FRAMEWORK = {
 
 JWT_AUTH = {
     'JWT_EXPIRATION_DELTA': datetime.timedelta(seconds=600),
+    'JWT_ALLOW_REFRESH': True,
 }
 
 LOGGING = {
diff --git a/backend/grady/urls.py b/backend/grady/urls.py
index 9acdd9b0e47126124006bc7b2ee0445a4388a42f..95d879bbd63467ba2d213c45201a3227139e0b78 100644
--- a/backend/grady/urls.py
+++ b/backend/grady/urls.py
@@ -18,10 +18,8 @@ from django.contrib import admin
 
 urlpatterns = [
     url(r'^admin/', admin.site.urls),
-    url(r'^', include('core.urls'))
-]
+    url(r'^', include('core.urls')),
 
-urlpatterns += [
     url(r'^api-auth/', include('rest_framework.urls',
-                               namespace='rest_framework')),
+        namespace='rest_framework')),
 ]