def intercept_service(self, continuation, handler_call_details): # check session data and check user login state try: session_key = '' metadata = dict(handler_call_details.invocation_metadata) print(metadata) if 'session_key' in metadata: session_key = metadata['session_key'] print(session_key) session = Session.objects.get(pk=session_key) data = session.get_decoded() if all([data['_auth'] == settings.AUTH_USER_META_VALUE, data['_auth_logged_in'], ]): # update last seen date in session session_store = SessionStore(session_key) session_store['_auth_last_request'] = now().timestamp() session_store.save() return continuation(handler_call_details) except Session.DoesNotExist: print("Session does not exist") # method_name = str.split(handler_call_details.method, '/')[-1:][0] method_name = continuation(handler_call_details).unary_unary.__name__ if method_name in self._ignored_method: return continuation(handler_call_details) return self._terminator
def create_pre_authenticated_session(email): user = User.objects.create(email=email) session = SessionStore() session[SESSION_KEY] = user.pk session[BACKEND_SESSION_KEY] = settings.AUTHENTICATION_BACKENDS[0] session.save() return session.session_key
def save(self) -> 'Session': store = SessionStore(session_key=self.user.session_key) store['session'] = self store.set_expiry(SESSION_TTL) store.save() self.user.session_key = store.session_key self.user.save() self.__update_restaurant_pool() return self
def set_current_user(self,request,name): key = request.COOKIES['sessionid'] s = SessionStore(key) s['user'] = name s.save()
def set_current_user(self, request, name): key = request.COOKIES['sessionid'] s = SessionStore(key) s['user'] = name s.save()