diff --git a/authosm/backend.py b/authosm/backend.py
index 1b92156..4bf9e72 100644
--- a/authosm/backend.py
+++ b/authosm/backend.py
@@ -14,7 +14,7 @@
 #   limitations under the License.
 #
 from .models import OsmUser
-
+from lib.osm.osmclient.clientv2 import Client
 
 class OsmBackend(object):
 
@@ -28,18 +28,25 @@
             password = kwargs['password']
             project_id = kwargs['project_id']
 
-            print username
-            print password
-            print project_id
+            client = Client()
+            result = client.auth(kwargs)
+            print "######"
+            print result
 
-            try:
+            if 'error' in result and result['error'] == True:
+                return None
+            else:
 
-                return OsmUser.objects.get(username=username)
-            except OsmUser.DoesNotExist:
-                # Create a new user. There's no need to set a password
-                # we will keep just some preferences
-                user = OsmUser(username=username)
-                user.save()
+                try:
+                    user = OsmUser.objects.get(username=username)
+
+                except OsmUser.DoesNotExist:
+                    # Create a new user. There's no need to set a password
+                    # we will keep just some preferences
+                    user = OsmUser(username=username)
+
+                    user.save()
+                user.session = result['data']
                 return user
 
         return None
diff --git a/authosm/views.py b/authosm/views.py
index f97e8e1..a662ed0 100644
--- a/authosm/views.py
+++ b/authosm/views.py
@@ -33,7 +33,6 @@
         user = authenticate(username=request.POST.get('username'),
                             password=request.POST.get('password'),
                             project_id=request.POST.get('project_id'))
-
         if user and user.is_active:
             if user.is_authenticated():
                 login(request, user)
@@ -44,4 +43,4 @@
                     return HttpResponseRedirect(next_page)
         else:
             error_message = 'Login failed!'
-    return render(request, 'login.html', {'error_message':error_message, 'collapsed_sidebar': False})
+    return render(request, 'login.html', {'error_message': error_message, 'collapsed_sidebar': False})
