2012-06-30 4 views
0

Я работаю с django всего несколько месяцев, и теперь я модифицирую базу данных django, созданную другим разработчиком.Переопределить следующий параметр django-social-auth, чтобы отслеживать логины и новые пользователи в Google Analytics.

Я пытаюсь найти способ эффективно отслеживать регистрацию и вход в систему в Google Analytics и способ, которым я думал сделать это, добавив параметр к URL-адресу, который пользователь перенаправляет после подключения через facebook.

На данный момент мы используем «следующего параметр», как это:

<a href="{% url socialauth_begin 'facebook' %}?next={{ request.path }}"> 

Я хочу, чтобы иметь возможность переопределить следующие параметры для того, чтобы добавить:

{{request.path}}?new_facebook_user 

или

{{request.path}}?facebook_login 

если пользователь уже зарегистрирован.

Как вы считаете, что лучше всего сделать это? Считаете ли вы, что это правильный подход для отслеживания логинов fb и новых пользователей в аналитике google?

ответ

1

Этот подход не будет работать, по крайней мере, вы не сможете определить, является ли пользователь новым или нет, когда вы создаете эту ссылку. Приложение предоставляет параметр SOCIAL_AUTH_NEW_USER_REDIRECT_URL, чтобы определить другой URL-адрес для перенаправления вновь созданных учетных записей. Этот параметр имеет приоритет над параметром ?next=, поэтому он будет потерян, если он определен.

+0

Спасибо, посмотрим. Я также проверял FB SDK, который также может помочь. Все еще нужно иметь более глубокий вид. – johnlucas

0

Вам нужен метод в трубопроводе, как это:

def modify_next(backend, is_new=True, *args, **kwargs): 
    if backend.name == "facebook": 
     next = backend.strategy.session_get("next") 
     if is_new: 
      backend.strategy.session_set("next", "{}?new_facebook_user".format(next)) 
     else: 
      backend.strategy.session_set("next", "{}?facebook_login".format(next)) 

Таким образом, вы будете изменять значения по умолчанию следующий behabiour.