# 私は囲碁、特にジンを勉強しています。私の大切なプロジェクトのために、手早く簡単な認証が必要です。
通常、リソースを保護するために HTTP/基本認証を使用することはお勧めしませんが、このプロジェクトではデータベースを持っていないので、あちこちにいくつかのマークダウン ファイルを提供するだけです。したがって、ここでは認証に HTTP / 基本認証を使用します。
gin は私のお気に入りの Web フレームワークの 1 つです。非常に優れたミドルウェアがたくさんあるため、node.js や hapijs の Express フレームワークに似ています。
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 }
net/http
パッケージを import
にインポートしました。 http 応答のステータス コードの形式を指定します。 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 サイトの他の関連記事を参照してください。