diff --git a/SAS/TMSS/src/tmss/tmssapp/views.py b/SAS/TMSS/src/tmss/tmssapp/views.py
index 8dabf0b06f1967e925ea8fac41e80afb84e31387..a9a8d761583eb90dca7741e3f49b9201ccd32b3e 100644
--- a/SAS/TMSS/src/tmss/tmssapp/views.py
+++ b/SAS/TMSS/src/tmss/tmssapp/views.py
@@ -1,7 +1,7 @@
 import os
 
 from django.http import HttpResponse, JsonResponse, Http404
-from django.shortcuts import get_object_or_404, render
+from django.shortcuts import get_object_or_404, render, redirect
 from lofar.sas.tmss.tmss.tmssapp import models
 from lofar.common.json_utils import get_default_json_object_for_schema
 from lofar.common.datetimeutils import formatDatetime
@@ -44,6 +44,28 @@ def index(request):
     #return render(request, "../../../frontend/frontend_poc/build/index.html")
 
 
+from django.contrib.auth.views import LoginView as LW
+from django.contrib.auth import authenticate, login
+class LoginView(LW):
+
+    # def get(self, request, *args, **kwargs):    # TODO: Render frontend login
+    #     return render(request,
+    #                   os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), '../../frontend',
+    #                                'tmss_webapp/build/index.html'))
+
+    def post(self, request):
+        username = request.POST['username']
+        password = request.POST['password']
+        user = authenticate(request, username=username, password=password)
+        if user is not None:
+            login(request, user)
+            # Redirect to homepage.
+            return redirect(to='index', permanent=True)
+        else:
+            # Return an 'invalid login' error message.
+            return HttpResponse('Invalid credentials!', content_type='text/plain')
+
+
 def task_specify_observation(request, pk=None):
     task = get_object_or_404(models.TaskDraft, pk=pk)
     return HttpResponse("response", content_type='text/plain')
diff --git a/SAS/TMSS/src/tmss/urls.py b/SAS/TMSS/src/tmss/urls.py
index dda3767daec991e0fe14e9f8330270c2249b8ef3..738871e8a6c9fe4343503eed4fb483b014638ac3 100644
--- a/SAS/TMSS/src/tmss/urls.py
+++ b/SAS/TMSS/src/tmss/urls.py
@@ -16,7 +16,7 @@ Including another URLconf
 from django.shortcuts import render
 
 from django.contrib import admin
-from django.contrib.auth.views import LoginView, LogoutView
+from django.contrib.auth.views import LogoutView
 from django.urls import path, re_path
 from django.conf.urls import url, include
 from django.views.generic.base import TemplateView, RedirectView
@@ -56,6 +56,7 @@ swagger_schema_view = get_schema_view(
 # use re_path(r'<...>/?') to make trailing slash optional (double entries confuse Swagger)
 urlpatterns = [
     path('admin/', admin.site.urls),
+    path('login/', views.LoginView.as_view(), name='login'),
     path('logout/', LogoutView.as_view(), name='logout'),
     path('docs/', include_docs_urls(title='TMSS API')),
     re_path(r'^swagger(?P<format>\.json|\.yaml)$', swagger_schema_view.without_ui(cache_timeout=0), name='schema-json'),