показать новое сообщение новому пользователю App Engine

1

Я использую механизм Google App, чтобы пользователь мог войти на сайт. Как только они войдут в систему, я создаю для них токен и использую это, чтобы проверить, вошел ли пользователь в систему. Я хочу иметь возможность отображать другое сообщение для пользователей в первый раз и другое для возвращающихся пользователей.

        {% ifequal cookie None %} 


<a  href="https://foursquare.com/oauth2/authenticate?client_id=X&response_type=code&redirect_uri=http://localhost:8080/">Log In</a>

            <hr></hr>  
        {% else %} 

                        {% for user in set %}
                            {% ifequal user.session_ID access_token %}
                                <a  href="/logout">Logout {{user.user_name}}</a>
                                    <hr></hr>  
                            {% else %}
                            {%endifequal%}
                        {% endfor %}

   <h3 align="center"> 





        {% endifequal %}

В настоящее время существует только два варианта: подписанный и не.

  • 0
    Вы имеете в виду нового пользователя или просто пользователя без активного сеансового куки? Первый из них потребует своего рода регистрации с вашей стороны (то есть объекта профиля пользователя, который ведет учет пользователей, которые входили в ваше приложение в прошлом).
  • 0
    @Kevin процесс входа в систему состоит из двух этапов. Как только пользователь прошел аутентификацию во второй системе, для него в базе данных создается профиль пользователя. Я хочу, чтобы какой-то способ проверки, находится ли пользователь в базе данных, не требует ли он прохождения второго процесса OAuth.
Теги:
django-templates
google-app-engine

2 ответа

2
Лучший ответ

Предполагая, что объект вашего профиля пользователя выглядит примерно так:

class UserProfile(db.Model):
    UserID = db.UserProperty()
    FirstSession = db.DateTimeProperty(auto_now_add=True)

Попробуйте следующее:

from google.appengine.api import users

user = users.get_current_user()

is_existing_user = UserProfile.all().filter('UserID = ', user).get()

if is_existing_user:
    #do something
else:
    #do something else
  • 0
    Есть ли способ сделать это в шаблоне? Я попробовал следующее: check = db.Query(User) check = check.filter("foursq_auth_token = ", access_Token) results = check.fetch(limit=1) if len(results) > 0: doRender(self, "index.html", {"logged_in":"yes"}) Но, похоже, это не работает :-(
  • 0
    @ User082074 Вы не должны пытаться сделать это в шаблоне - это не то, для чего он. Сделайте это в своем коде и проверьте 'is_existing_user' в шаблоне.
0

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

is_first_time_user = db.BooleanProperty(default=True,verbose_name="is First Time User")

или функцию в классе пользователя, которую может использовать тег шаблона.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню