일반적으로 리소스 확보를 위해 HTTP/기본 인증을 사용하는 것을 권장하지 않지만, 이 프로젝트에서는 데이터베이스가 없어서 여기저기에 마크다운 파일을 제공합니다. 따라서 여기서는 인증을 위해 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
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 的路由,当然我们也可以设置一个默认的路由 /
。
让我们来看看这个最小可行的例子:
rrreeeimport
中多导入了一个 net/http
包, 用于格式化 http 响应的状态码。authorized.GET
참고: 제공된 API는 다음 중 하나일 수 있습니다. 더 큰 사용 사례이지만 일련의 템플릿을 직접 렌더링할 수도 있습니다.
샘플 사용자 계정을 설정하고 비밀 경로를 생성해야 합니다. 물론 기본 경로 /
를 설정할 수도 있습니다.
rrreee
import
에서는 형식 지정을 위해 추가 net/http
패키지를 가져옵니다. 상태 코드 http 응답. authorized.GET
를 사용하면 사용자가 올바른 조합을 입력할 수만 있습니다. 일반 라우터처럼 작동하지만 인증이 필요합니다. 파일 내용을 변경할 때 "CTRL + C"를 눌러 Gin 프레임워크 인스턴스를 빠르게 실행하고 다시 시작하세요. Access 로컬 호스트에 있는 경우: 8080/secret을 브라우저에 입력하면 사용자 이름과 비밀번호를 입력하라는 창이 표시됩니다.
🎜🎜계정과 비밀번호를 올바르게 입력했다면 다음과 같은 출력이 표시됩니다: 🎜rrreee🎜그렇습니다! http 기본 인증이 필요한 Go 웹 프로젝트의 경로를 만들었습니다! 🎜🎜더 자세한 예제를 원하시면 Github에서 gin의 README.md를 확인하세요. 여기에는 몇 가지 훌륭한 예제가 있습니다! 🎜🎜추천 튜토리얼: "🎜Go Tutorial🎜"🎜위 내용은 Gin에서 HTTP 기본 인증 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!