🐙

【Go】Basic認証のサンプルコード

に公開

概要

  • Goのechoを使ってBasic認証のサンプルコードを書いてみた

サンプルコード

package middleware

import (
	"github.com/labstack/echo/v4"
)

// BasicAuthMiddleware Basic認証用のmiddleware
func BasicAuthMiddleware() echo.MiddlewareFunc {
	return echo.MiddlewareFunc(func(next echo.HandlerFunc) echo.HandlerFunc {
		return func(c echo.Context) error {
			// Basic認証の実装
			username, password, ok := c.Request().BasicAuth()
			if !ok {
				c.Response().Header().Set("WWW-Authenticate", `Basic realm="Restricted"`)
				return echo.NewHTTPError(401, "認証が必要です")
			}

			if username == "admin" && password == "password" {
				return next(c)
			}

			c.Response().Header().Set("WWW-Authenticate", `Basic realm="Restricted"`)
			return echo.NewHTTPError(401, "認証に失敗しました")
		}
	})
}
GitHubで編集を提案

Discussion