2019-03-26Twitter連携によってWEBアプリにログイン機能を実装するチュートリアルとして書いてきましたが、いよいよ今回が最終回です。今回は取得したアクセストークンをCookieに保存して、Cookieの情報をもとにログイン処理を実装していきます。こちらの記事の続きです。前回まででTwitterAPIを操作するのに必要なアクセストークンを取得することができました。前回の振り返りから進めていきます。前回の内容を確認しておきます。以下のコードのresに、TwitterAPIの使用に必要なアクセストークンが格納されています。twitter.fetch_access_token(access_token_url)この中には、次の4つの情報が含まれていました。・oauth_token・oauth_token_secret・user_id・screen_nameこれから、このアクセストークンとスクリーンネームの値を取得してCookieに格納していきます。FlaskでCookieを保存するさて、取得した情報をCookieに保存するためには、Flaskのmake_responseというモジュールを利用します。make_responseをimportしていきましょう。make_response前回までのコードで、アクセストークンはAT、ASという形で変数に格納していました。その情報を次のコードでCookieに入れてあげます。responseまず、すべての処理が終わったあとのリダイレクトを、レスポンスオブジェクトとして、resuponseに格納します。set_cookieメソッドを使って、値を名前つきで代入していきます。引数の文字列がデータの名前です。あとで情報を取り出すときに用います。ここが最も肝心なのですが、最後にリダイレクトURLを格納したresponseを返しています。ここでCookieの格納されたresponseではなく、普通にredirect('/')を返してしまうと、Cookieが保存されないので注意してください。ここまでできればCookieへの保存は完了です。ブラウザできちんとデータが保存されたか確認してみてください。Cookieの利用は、こちらを参考にしました。pythonでのcookie保存について|teratail最後に、保存されたCookieの情報を利用して、WEBページの表示をログイン後の画面に変更してあげたいと思います。FlaskでCookieからデータを取り出すCookieからデータを取り出すのはとても簡単です。Cookieの名前を指定して、cookies.getメソッドを使うだけです。None)こちらの記事を参考にしました。Jinja2でCookieの読み書きあとは煮るなり焼くなり好きにしてください。今回作ったWEBアプリケーションでは、Cookieの有無を鍵として、ログイン済みかどうかを判断して表示される内容を変えるようにしています。Jinja2の記法については割愛しますが、気になった方はぜひ調べてみてください。こちらがログイン前の画面です。こちらはログイン後の画面です。ヘッダー部分にユーザー名が表示されているのがわかりますね。これでログイン機能を実装できました。まとめここまで全4回の記事で解説してきたTwitter認証によるログイン機能の実装、いかがでしたでしょうか?今回はCookieの情報をそのまま使いましたが、DBと組み合わせれば、Twitter連携だけでユーザー登録を実装することも簡単にできます。これからWEBアプリを作ろうとする方の助けに少しでもなればと願っております。コメントをキャンセルメールアドレスが公開されることはありません。千葉県を中心にボランティア活動や勉強会などを行っています。好きな言語はC#とPythonとC++です。関係の技術が好きです。XamarinとかTypeScriptも触ってます。質問・相談・お仕事のご依頼は、Twitterまたは問い合わせフォームまで。今月の人気記事1一年間プログラミングを独学した過程を振り返ってわかったこと。