ToDoアプリを作ってみよう【モデル構築編】」の続きです。BasicAuth(いわゆるベーシック認証)とOAuth2(オーオース)と呼ばれる認証をサポートしています。本アプリケーションは、あまり凝ったアプリケーションでもないので、ベーシック認証を利用することにします。今の時代、「ログインフォームなどを作成してログイン」する形のほうが一般的ではありますが、今回はご容赦ください。FastAPIでベーシック認証を使用するにあたり、下準備がいくつかあります。以下のモジュールを新しくインポートしてください。new上から2つは、FastAPIでベーシック認証を使うのに必要なクラスです。後半の新しく追加したものは、入力された「ユーザ名」や「パスワード」がデータベースにあるものと一致するかを検証するのに使います。いうより、ほとんど変更しますので、上からコピペでも構いません。task})各処理の詳細はコメントで書いたので、読んでいただければ理解できるかと思います。SQL構文でいう「WHERE」を扱うことができます。すべてをリスト化して取得できます。確認では、動作確認をしてみましょう!Basic認証画面うまく動作していそうです!わざと間違えると、簡単なエラーが返ってくることも確認できました。ユーザをWeb上で登録できるようにする現状、ユーザを登録するには、Pythonコードから一つ一つデータベースにコミットしなければなりません。このままでは、誰もが使えるアプリケーションではないので、Web上からユーザを新たに登録できるようにします。ルーティングそうと決まれば新たに「register」という名前で『URL』『コントローラ』『ビュー』を作りましょう。new今回は、「GETメソッド」と「POSTメソッド」で処理を分けるので、上記のように引数で指定してあげます。コントローラの処理は後回しにします。'POST':passビューも「templates/resiter.html」というファイルを作っておきましょう。コントローラのGETメソッド処理を書くつぎに、GETメソッドで受け取ったときの処理を書きます。ここでは「単にビューを返すだけ」なので特に面白いことはありません...。[]})これだけです。ビューを作る次は、「ビュー」を作りましょう。必要なのは、データベースに登録するための情報だけなので、それに見合ったフォームを書けばよいだけです!今回は、「利用規約に同意するチェックボックス」や、「メール認証」などは今回は省きます。%}後々のことを考えて、エラー表示する部分も実装しています。登録フォームのビューコントローラのPOSTメソッドを書く前に...ここからが本題です。先ほど作ったフォームから、POSTとしてデータが渡されました。フォームデータの受け取り方は以下のように行います。関数を使うことで実現できます。いう関数を利用しても実現可能なようです。そちらが気になる方は、以下の公式ドキュメントを参照してみてください。FastAPI】http://fastapi.tiangolo.com/tutorial/request-forms/POSTメソッド処理を書く下準備はできたので、実装していきましょう!まずは、入力されたデータが「正しい」か「否」かを判定します。そのために、正規表現を使ってみましょう。新しくcontrollers.pyに、以下の「re」というモジュールをインポートし、各パターンを作ります。コードを見た方が早いですね。ついているのは、バックスラッシュなどをエスケープしなくても良いようにするためです。error.append('同じユーザ名のユーザが存在します。error.append('入力したパスワードが一致しません。error.append('ユーザ名は4~20文字の半角英数字にしてください。error.append('パスワードは6~20文字の半角英数字にしてください。error.append('正しくメールアドレスを入力してください。None:error.append('同じユーザ名のユーザが存在します。password_tmp:error.append('入力したパスワードが一致しません。None:error.append('ユーザ名は4~20文字の半角英数字にしてください。None:error.append('パスワードは6~20文字の半角英数字にしてください。None:error.append('正しくメールアドレスを入力してください。username})コードは大したことをやっていないので、読んでいただくと処理が理解できるかと思います!登録完了のビューをつくる最後に、「登録完了の画面」を作成しましょう。これも、そんなに凝ったものでなくて大丈夫ですが、そのままスムーズにログインに移行できるものが良いですね。アプリケーションへようこそ。アプリケーションへようこそ。第3回:さいごにここで第3回は、終わりです。今回は、「認証」と「ユーザ登録」について実装をしました。FastAPIの場合での、シンプルなベーシック認証についてご理解いただけたかと思います。社長と一杯飲みながらお話してみたい方はこちらミツオカフリーランスエンジニア様の募集はこちらにゃんこ師匠その他、お問い合わせはこちらミツオカお気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!一緒に働いてくれる仲間を募集しております!ライトコードでは、仲間を募集しております!当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。rightcodeエンジニア大募集中!私たちライトコードでは、エンジニアを募集しております。私服大歓迎のカジュアルな職場なので、お気軽にご応募ください!また、フリーエンジニアの方も募集しております。