> 백엔드 개발 > Golang > Gin에서 HTTP 기본 인증 구현

Gin에서 HTTP 기본 인증 구현

Guanhui
풀어 주다: 2020-06-15 18:04:46
앞으로
3587명이 탐색했습니다.

일반적으로 리소스 확보를 위해 HTTP/기본 인증을 사용하는 것을 권장하지 않지만, 이 프로젝트에서는 데이터베이스가 없어서 여기저기에 마크다운 파일을 제공합니다. 따라서 여기서는 인증을 위해 HTTP/기본 인증을 사용하겠습니다. Gin에서 HTTP 기본 인증 구현

gin은 정말 멋진 미들웨어가 많기 때문에 제가 가장 좋아하는 웹 프레임워크 중 하나입니다. 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을 입력하면 "메시지: Hello World!"가 표시됩니다.

go/src 目录下创建了一个 gin-http-auth 的项目,在项目的 main.go 文件里添加的的内容如下:

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
}
로그인 후 복사

接着在你的终端上运行 go get 命令,你的项目就开始运行了! 您现在需要通过运行以下命令启动刚出炉的 JSON API:

secret    "The secret ingredient to the BBQ sauce is stiring it in an old whiskey barrel."
로그인 후 복사

你可以在你的浏览器中输入 localhost:8080,应该可以看到 「message:Hello World !」

注意:提供 API 可能是 gin 的更大应用场景之一,但是你也可以直接渲染一系列模板。

用 Gin 框架来实现路由保护


假设你现在有一个 secret 的方法,你不希望所有人通过 url 访问的到,这是一个特殊的烧烤酱配方或一封含有一些不可告人的细节的的情书!

我们需要设置一些示例用户帐户并创建一个 secret 的路由,当然我们也可以设置一个默认的路由 /

让我们来看看这个最小可行的例子:

rrreee
  1. import 中多导入了一个 net/http 包, 用于格式化 http 响应的状态码。
  2. 在授权访问的组中添加了部分用户。
  3. authorized.GET참고: 제공된 API는 다음 중 하나일 수 있습니다. 더 큰 사용 사례이지만 일련의 템플릿을 직접 렌더링할 수도 있습니다.
Gin 프레임워크를 사용하여 경로 보호 구현


이제 비밀 메소드가 있고 모든 사람이 URL을 통해 액세스하는 것을 원하지 않는다고 가정해 보세요. 이것은 특별한 바베큐 소스 레시피 또는 공개되지 않은 내용이 포함된 이메일입니다. 정보. 인간미 넘치는 러브레터!


샘플 사용자 계정을 설정하고 비밀 경로를 생성해야 합니다. 물론 기본 경로 /를 설정할 수도 있습니다.

이 최소 실행 가능한 예를 살펴보겠습니다.

rrreee

  1. import에서는 형식 지정을 위해 추가 net/http 패키지를 가져옵니다. 상태 코드 http 응답.
  2. 승인된 액세스 그룹에 일부 사용자를 추가했습니다.

  3. authorized.GET를 사용하면 사용자가 올바른 조합을 입력할 수만 있습니다. 일반 라우터처럼 작동하지만 인증이 필요합니다.

    파일 내용을 변경할 때 "CTRL + C"를 눌러 Gin 프레임워크 인스턴스를 빠르게 실행하고 다시 시작하세요.

    Access 로컬 호스트에 있는 경우: 8080/secret을 브라우저에 입력하면 사용자 이름과 비밀번호를 입력하라는 창이 표시됩니다.

    🎜🎜계정과 비밀번호를 올바르게 입력했다면 다음과 같은 출력이 표시됩니다: 🎜rrreee🎜그렇습니다! http 기본 인증이 필요한 Go 웹 프로젝트의 경로를 만들었습니다! 🎜🎜더 자세한 예제를 원하시면 Github에서 gin의 README.md를 확인하세요. 여기에는 몇 가지 훌륭한 예제가 있습니다! 🎜🎜추천 튜토리얼: "🎜Go Tutorial🎜"🎜

위 내용은 Gin에서 HTTP 기본 인증 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿