ホームページ  >  記事  >  バックエンド開発  >  Jin での HTTP Basic 認証の実装

Jin での HTTP Basic 認証の実装

Guanhui
Guanhui転載
2020-06-15 18:04:463548ブラウズ

Jin での HTTP Basic 認証の実装

# 私は囲碁、特にジンを勉強しています。私の大切なプロジェクトのために、手早く簡単な認証が必要です。

通常、リソースを保護するために HTTP/基本認証を使用することはお勧めしませんが、このプロジェクトではデータベースを持っていないので、あちこちにいくつかのマークダウン ファイルを提供するだけです。したがって、ここでは認証に HTTP / 基本認証を使用します。

gin は私のお気に入りの Web フレームワークの 1 つです。非常に優れたミドルウェアがたくさんあるため、node.js や hapijs の Express フレームワークに似ています。

Gin フレームワークをインストールし、Hello World を出力します。

go/src ディレクトリに gin-http-auth プロジェクトを作成する場合は、次の内容をプロジェクトの main.go ファイルに追加します:

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "Hello World!",
        })
    })
    r.Run() //监听 0.0.0.0:8080 
}

次に、ターミナルで go get コマンドを実行すると、プロジェクトの実行が開始されます。次のコマンドを実行して、新しい JSON API を開始する必要があります:

go run main.go

ブラウザに localhost:8080 と入力すると、「message: Hello World!」が表示されるはずです。

Note: API の提供は gin のより大きなユースケースの 1 つですが、一連のテンプレートを直接レンダリングすることもできます。

Gin フレームワークを使用してルート保護を実装する


シークレット メソッドがあり、誰もが URL を介してそれにアクセスできないようにするとします。これは特別なバーベキューです。ソースのレシピや、詳細が隠されたラブレターも!

いくつかのサンプル ユーザー アカウントをセットアップし、シークレット ルートを作成する必要があります。もちろん、デフォルト ルート / をセットアップすることもできます。

この最小限の実行可能な例を見てみましょう:

package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()

    r.GET("/", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "Hello World!",
        })
    })

    authorized := r.Group("/", gin.BasicAuth(gin.Accounts{
        "user1": "love",
        "user2": "god",
        "user3": "sex",
    }))

    authorized.GET("/secret", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "secret": "The secret ingredient to the BBQ sauce is stiring it in an old whiskey barrel.",
        })
    })

    r.Run() // 监听服务在 0.0.0.0:8080
}
  1. もう 1 つ net/http パッケージを import にインポートしました。 http 応答のステータス コードの形式を指定します。
  2. 一部のユーザーが許可されたアクセス グループに追加されました。
  3. authorized.GET ユーザーに正しい組み合わせの入力のみを許可します。通常のルーターのように機能しますが、認証が必要です。

ファイルの内容を変更する場合は、「CTRL C」を押して、Gin フレームワークのインスタンスをすぐに実行し、再起動します。

ブラウザで localhost:8080/secret にアクセスすると、ユーザー名とパスワードの入力を求めるウィンドウが表示されます。

アカウントとパスワードを正しく入力すると、次の出力が表示されます:

secret    "The secret ingredient to the BBQ sauce is stiring it in an old whiskey barrel."

以上です! Go Web プロジェクトに、http 基本認証を必要とするルートが作成されました。

さらに詳細な例が必要な場合は、Github にある gin の README.md をチェックしてください。優れた例がいくつか含まれています。

推奨チュートリアル:「Go チュートリアル

以上がJin での HTTP Basic 認証の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。