はじめに
Web サーバーに認証メカニズムを実装することは、ユーザー データとセキュリティを保護するために重要です。保護されたリソースへのアクセスを制御します。ルーティングに httprouter パッケージを使用し、ミドルウェア管理に Negroni を使用する場合、認証から特定のルートを除外する必要が生じる場合があります。この記事では、Negroni でルート固有のミドルウェアを実現する方法について説明します。
問題ステートメント
httprouter と Negroni を使用したサーバー設定がある場合、目的は認証ハンドラーを実装することです。 (authenticator.Get()) し、1 つを除くすべてのルート (「/login」など) に適用します。
ソリューション
Negroni を使用したルート固有のミドルウェアの場合、ルートごとに個別の Negroni インスタンスを作成する必要があります。提供された例では、「/login」と「/」に対して個別の Negroni インスタンスが作成されます。 「/login」ルートは、loginHandler のみを使用して認証から除外されますが、「/」ルートは、authenticator.Get() と IndexHandler の両方を利用します。
実装
<code class="go">router := httprouter.New() router.Handler("GET", "/login", negroni.New(negroni.HandlerFunc(loginHandler))) router.Handler("GET", "/", negroni.New(authenticator.Get(), negroni.HandlerFunc(indexHandler))) server := negroni.Classic() server.UseHandler(router) server.Use(sessions.Sessions("example-web-dev", cookiestore.New([]byte("some secret")))) server.Run(":3000")</code>
重要なポイント
以上がNegroni にルート固有のミドルウェアを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。