Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A Middleware for Go Programming Language to check for JWTs on HTTP requests

License

NotificationsYou must be signed in to change notification settings

auth0/go-jwt-middleware

Repository files navigation

Go JWT Middleware

Documentation

  • Godoc - explore the go-jwt-middleware documentation.
  • Docs site — explore our docs site and learn more about Auth0.
  • Quickstart - our guide for adding go-jwt-middleware to your app.

Getting started

Requirements

This library follows thesame support policy as Go. The last two major Go releases are actively supported and compatibility issues will be fixed. While you may find that older versions of Go may work, we will not actively test and fix compatibility issues with these versions.

  • Go 1.23+

Installation

go get github.com/auth0/go-jwt-middleware/v2

Usage

package mainimport ("context""encoding/json""log""net/http""github.com/auth0/go-jwt-middleware/v2""github.com/auth0/go-jwt-middleware/v2/validator"jwtmiddleware"github.com/auth0/go-jwt-middleware/v2")varhandler=http.HandlerFunc(func(w http.ResponseWriter,r*http.Request) {claims,ok:=r.Context().Value(jwtmiddleware.ContextKey{}).(*validator.ValidatedClaims)if!ok {http.Error(w,"failed to get validated claims",http.StatusInternalServerError)return}payload,err:=json.Marshal(claims)iferr!=nil {http.Error(w,err.Error(),http.StatusInternalServerError)return}w.Header().Set("Content-Type","application/json")w.Write(payload)})funcmain() {keyFunc:=func(ctx context.Context) (interface{},error) {// Our token must be signed using this data.return []byte("secret"),nil}// Set up the validator.jwtValidator,err:=validator.New(keyFunc,validator.HS256,"https://<issuer-url>/",[]string{"<audience>"},)iferr!=nil {log.Fatalf("failed to set up the validator: %v",err)}// Set up the middleware.middleware:=jwtmiddleware.New(jwtValidator.ValidateToken)http.ListenAndServe("0.0.0.0:3000",middleware.CheckJWT(handler))}

After running that code (go run main.go) you can then curl the http server from another terminal:

$ curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJpc3MiOiJnby1qd3QtbWlkZGxld2FyZS1leGFtcGxlIiwiYXVkIjoiZ28tand0LW1pZGRsZXdhcmUtZXhhbXBsZSJ9.xcnkyPYu_b3qm2yeYuEgr5R5M5t4pN9s04U1ya53-KM" localhost:3000

That should give you the following response:

{  "CustomClaims": null,  "RegisteredClaims": {    "iss": "go-jwt-middleware-example",    "aud": "go-jwt-middleware-example",    "sub": "1234567890",    "iat": 1516239022  }}

The JWT included in the Authorization header above is signed withsecret.

To test how the response would look like with an invalid token:

$ curl -v -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.yiDw9IDNCa1WXCoDfPR_g356vSsHBEerqh9IvnD49QE" localhost:3000

That should give you the following response:

...< HTTP/1.1 401 Unauthorized< Content-Type: application/json{"message":"JWT is invalid."}...

For more examples please check theexamples folder.

Feedback

Contributing

We appreciate feedback and contribution to this repo! Before you get started, please see the following:

Raise an issue

To provide feedback or report a bug,please raise an issue on our issue tracker.

Vulnerability Reporting

Please do not report security vulnerabilities on the public Github issue tracker. TheResponsible Disclosure Program details the procedure for disclosing security issues.


Auth0 Logo

Auth0 is an easy to implement, adaptable authentication and authorization platform.
To learn more checkoutWhy Auth0?

This project is licensed under the MIT license. See the LICENSE file for more info.

About

A Middleware for Go Programming Language to check for JWTs on HTTP requests

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp