2

Google App Engine アプリで現在のユーザー オブジェクトを取得しようとしていますが、何も返されないようです。

https://github.com/takatama/gae-webapp2-auth/blob/master/handlers.pyのサンプル コードを使用して、ユーザー ハンドラーを記述しました。

私のアプリは正常にログインしますが、get_current_user() は NoneType を返します。この関数呼び出しは AJAX POST にあり、セッションは初期化されていませんか? どこかにデコレータを追加する必要がありますか?

4

2 に答える 2

3

この関数は、ユーザーが現在ログインしていない場合にget_current_user戻ります。これを処理する通常の方法の 1 つは、最初に呼び出してから、ブロックを使用してログインしているかどうかを判断することです (この例はdocsから取得したものです)。Noneuser = users.get_current_user()if

user = users.get_current_user()
if user:
    greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" %
                (user.nickname(), users.create_logout_url("/")))
else:
    greeting = ("<a href=\"%s\">Sign in or register</a>." %
                users.create_login_url("/"))

self.response.out.write("<html><body>%s</body></html>" % greeting)

get_current_user()が返された場合None、ユーザーがログインしていないことがわかっているので、 を使用users.create_login_url()して、ユーザーが認証できるようにするリンクを作成し、その後、そのユーザーget_current_user()のオブジェクトを返しUserます (「ユーザー」と十分に言いましたか? :) )。

于 2012-11-12T06:28:23.793 に答える
0

問題は、登録した時間が過ぎていることです。そのため、別の gmail で google app engine にログインすると、問題なく動作します :)

于 2016-08-16T09:14:39.610 に答える