【问题标题】:display new message to new user App Engine向新用户 App Engine 显示新消息
【发布时间】:2011-08-10 11:09:42
【问题描述】:

我正在使用 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 %}

目前只有两种选择:登录和不登录。

【问题讨论】:

  • 您是指第一次使用的用户还是只是没有活动会话 cookie 的用户?前者需要您进行某种登录(即,一个用户个人资料实体,记录过去曾登录过您的应用的用户)。
  • @Kevin 登录过程分为两步。一旦用户通过第二个系统进行了身份验证,就会在数据库中为他们生成一个用户配置文件。我想要一些方法来检查用户是否已经在数据库中,如果他们不需要通过第二个 OAuth 过程。

标签: python google-app-engine django-templates


【解决方案1】:

假设您的用户配置文件实体如下所示:

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

【讨论】:

  • 有没有办法在模板中做到这一点?我尝试了以下方法:check = db.Query(User) check = check.filter("foursq_auth_token = ", access_Token) results = check.fetch(limit=1) if len(results) &gt; 0: doRender(self, "index.html", {"logged_in":"yes"}) 但这似乎不起作用:-(
  • @User082074 您不应该尝试在模板中执行此操作 - 这不是它的用途。在您的代码中执行此操作,并在模板中检查“is_existing_user”。
【解决方案2】:

对于这种情况,我会在用户类中使用布尔变量:

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

或模板标签可以使用的用户类中的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    相关资源
    最近更新 更多