diff --git a/api/auth.py b/api/auth.py index 201ce3a..4246dd8 100644 --- a/api/auth.py +++ b/api/auth.py @@ -18,8 +18,6 @@ from dss import settings @psa() def auth_by_token(request, backend): - token = request.data.get('access_token') - user = request.user user = request.backend.do_auth( access_token=request.data.get('access_token') ) @@ -40,7 +38,7 @@ class FacebookView(APIView): except Exception, e: return Response({ 'status': 'Bad request', - 'message': 'Could not authenticate with the provided token' if settings.DEBUG else e.message + 'message': 'Could not authenticate with the provided token' if not settings.DEBUG else e.message }, status=status.HTTP_400_BAD_REQUEST) if user: diff --git a/api/helpers.py b/api/helpers.py index 32b3e32..8680609 100644 --- a/api/helpers.py +++ b/api/helpers.py @@ -22,8 +22,7 @@ class ChatHelper(ActivityHelper): # do some persistence stuff with the chat from core.realtime import chat - user = self.get_session(request) - + #user = self.get_session(request) chat.post_chat(request.data['user'], request.data['message']) return Response(request.data['message'], HTTP_201_CREATED) diff --git a/api/urls.py b/api/urls.py index 043c535..ce510ef 100755 --- a/api/urls.py +++ b/api/urls.py @@ -1,21 +1,35 @@ from django.conf.urls import patterns, url, include +from rest_framework import permissions from rest_framework.routers import DefaultRouter +from rest_framework.views import APIView from api import views, auth, helpers from api.auth import FacebookView +from rest_framework.views import status +from rest_framework.response import Response router = DefaultRouter() # trailing_slash=True) router.register(r'user', views.UserProfileViewSet) router.register(r'mix', views.MixViewSet) - router.register(r'notification', views.NotificationViewSet) router.register(r'hitlist', views.HitlistViewSet) router.register(r'comments', views.CommentViewSet) router.register(r'activity', views.ActivityViewSet, base_name='activity') router.register(r'genre', views.GenreViewSet, base_name='genre') + +class DebugView(APIView): + permission_classes = (permissions.AllowAny,) + + def post(self, request, format=None): + return Response({ + 'status': 'Hello', + 'message': 'Sailor' + }, status=status.HTTP_200_OK) + + urlpatterns = patterns( '', url(r'^', include(router.urls)), @@ -26,17 +40,18 @@ urlpatterns = patterns( url(r'_search/$', views.SearchResultsView.as_view()), url(r'^', include(router.urls)), - #url(r'^login/', auth.ObtainAuthToken.as_view()), - #url(r'^logout/', auth.ObtainLogout.as_view()), + url(r'^_login/', FacebookView.as_view()), + url(r'^token-refresh/', 'rest_framework_jwt.views.refresh_jwt_token'), # url(r'^_tr/', RefreshToken.as_view()), url(r'^__u/checkslug', helpers.UserSlugCheckHelper.as_view()), url(r'^__u/', auth.ObtainUser.as_view()), - url(r'^_act/play', helpers.ActivityPlayHelper.as_view()), url(r'^_chat/', helpers.ChatHelper.as_view()), - url(r'^_login/', FacebookView.as_view()), + + + url(r'^__debug/', DebugView.as_view()), url('', include('social.apps.django_app.urls', namespace='social')), ) diff --git a/dss/settings.py b/dss/settings.py index 605277d..e7bc4ed 100755 --- a/dss/settings.py +++ b/dss/settings.py @@ -1,6 +1,7 @@ # e Django settings for dss project. import os import mimetypes +from datetime import timedelta from django.core.urlresolvers import reverse_lazy import djcelery from django.conf import global_settings @@ -217,3 +218,9 @@ DEFAULT_USER_TITLE = 'Just another DSS lover' SITE_NAME = 'Deep South Sounds' THUMBNAIL_PREFIX = 'cache/_tn/' + +JWT_AUTH = { + 'JWT_EXPIRATION_DELTA': timedelta(seconds=1800), + 'JWT_ALLOW_REFRESH': True, + 'JWT_REFRESH_EXPIRATION_DELTA': timedelta(days=30), +} \ No newline at end of file diff --git a/spa/models/session.py b/spa/models/session.py new file mode 100644 index 0000000..2d78ba5 --- /dev/null +++ b/spa/models/session.py @@ -0,0 +1,7 @@ +from django.db import models +from spa.models import BaseModel, UserProfile + + +class Session(BaseModel): + jwt_token = models.CharField(max_length=2048) + user = models.ForeignKey(UserProfile)