ユーザーの認証


Python ゲストブック コード チュートリアルのこの部分では、ユーザーの認証方法とログイン ユーザーにカスタム グリーティングを表示する方法を説明します。

このページは複数ページからなるチュートリアルの一部です。設定などの手順を最初から見るには、ゲストブックの作成に移動してください。

ユーザーのログイン

MainPage クラスは、ルートパス '/' への HTTP GET リクエストのハンドラを定義します。このハンドラは、ユーザーのログイン状態を確認します。

class MainPage(webapp2.RequestHandler):

    def get(self):
        guestbook_name = self.request.get('guestbook_name',
                                          DEFAULT_GUESTBOOK_NAME)
        greetings_query = Greeting.query(
            ancestor=guestbook_key(guestbook_name)).order(-Greeting.date)
        greetings = greetings_query.fetch(10)

        user = users.get_current_user()
        if user:
            url = users.create_logout_url(self.request.uri)
            url_linktext = 'Logout'
        else:
            url = users.create_login_url(self.request.uri)
            url_linktext = 'Login'

        template_values = {
            'user': user,
            'greetings': greetings,
            'guestbook_name': urllib.quote_plus(guestbook_name),
            'url': url,
            'url_linktext': url_linktext,
        }

        template = JINJA_ENVIRONMENT.get_template('index.html')
        self.response.write(template.render(template_values))

ユーザーがすでにアプリケーションにログインしている場合は、get_current_user() メソッドは User オブジェクトを返し、アプリにユーザーのニックネームが表示されます。ユーザーがログインしていない場合には、ユーザーのブラウザを Google アカウントのログイン画面にリダイレクトします。ユーザーが Google アカウントにログインすると、アプリに戻ります。

詳細については、Users API をご覧ください。