labstack/echo-jwt là dự án Security trên GitHub, viết chủ yếu bằng Go, với 123 sao. JWT middleware for Echo framework
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
JWT middleware for Echo framework. This middleware uses by default golang-jwt/jwt/v5
as JWT implementation.
Versioning
This repository does not use semantic versioning. MAJOR version tracks which Echo version should be used. MINOR version
tracks API changes (possibly backwards incompatible) and PATCH version is incremented for fixes.
NB: When golang-jwt MAJOR version changes this library will release MINOR version with breaking change. Always
add at least one integration test in your project.
For Echo v5 use v5.x.y releases.
Minimal needed Echo versions:
v5.0.0 needs Echo v5.0.0+
v4.0.0 needs Echo v4.7.0+
main branch is compatible with the latest Echo version.
Usage
Add JWT middleware dependency with go modules
go get github.com/labstack/echo-jwt/v5
Use as import statement
import "github.com/labstack/echo-jwt/v5"
Add middleware in simplified form, by providing only the secret key
import "github.com/golang-jwt/jwt/v5"
// ...
e.GET("/", func(c *echo.Context) error {
token, err := echo.ContextGet[*jwt.Token](c,"user")
if err != nil {
return echo.ErrUnauthorized.Wrap(err)
}
claims, ok := token.Claims.(jwt.MapClaims) // by default claims is of type `jwt.MapClaims`
if !ok {
return errors.New("failed to cast claims as jwt.MapClaims")
}
return c.JSON(http.StatusOK, claims)
})
IMPORTANT: Integration Testing with JWT Library
Ensure that your project includes at least one integration test to detect changes in major versions of the
golang-jwt/jwt library early.
This is crucial because type assertions like token := c.Get("user").(*jwt.Token) may fail silently if the imported
version of the JWT library (e.g., import "github.com/golang-jwt/jwt/v5") differs from the version used internally by
dependencies (e.g., echo-jwt may now use v6). Such discrepancies can lead to invalid casts, causing your handlers to
panic or throw errors. Integration tests help safeguard against these version mismatches.
func TestIntegrationMiddlewareWithHandler(t *testing.T) {
e := echo.New()
e.Use(echojwt.WithConfig(echojwt.Config{
SigningKey: []byte("secret"),
}))
// use handler that gets token from context to fail your CI flow when `golang-jwt/jwt` library version changes
// a) `token, ok := c.Get("user").(*jwt.Token)`
// b) `token := c.Get("user").(*jwt.Token)`
e.GET("/example", exampleHandler)
req := httptest.NewRequest(http.MethodGet, "/example", nil)
req.Header.Set(echo.HeaderAuthorization, "Bearer <TOKEN>")
res := httptest.NewRecorder()
e.ServeHTTP(res, req)
if res.Code != 200 {
t.Failed()
}
}
Full example
package main
import (
"errors"
"log/slog"
"github.com/golang-jwt/jwt/v5"
"github.com/labstack/echo-jwt/v5"
"github.com/labstack/echo/v5"
"github.com/labstack/echo/v5/middleware"
"net/http"
)
func main() {
e := echo.New()
e.Use(middleware.RequestLogger())
e.Use(middleware.Recover())
e.Use(echojwt.WithConfig(echojwt.Config{
SigningKey: []byte("secret"),
}))
e.GET("/", func(c *echo.Context) error {
token, err := echo.ContextGet[*jwt.Token](c, "user")
if err != nil {
return echo.ErrUnauthorized.Wrap(err)
}
claims, ok := token.Claims.(jwt.MapClaims) // by default claims is of type `jwt.MapClaims`
if !ok {
return errors.New("failed to cast claims as jwt.MapClaims")
}
return c.JSON(http.StatusOK, claims)
})
if err := e.Start(":8080"); err != nil {
slog.Error("Failed to start server", "error", err)
}
}
labstack/echo-jwt thuộc nhóm Security trên TopGit, cùng 4 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về labstack/echo-jwt ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/labstack/echo-jwt là nguồn chính thức.
labstack/echo-jwt có bao nhiêu sao?
labstack/echo-jwt có 123 sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/labstack/echo-jwt. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
labstack/echo-jwt có những chủ đề gì?
GitHub topics của labstack/echo-jwt: "echo", "echo-framework", "jwt", "middleware". TopGit xếp repo vào nhóm Security.
labstack/echo-jwt có phải mã nguồn mở không?
Có — labstack/echo-jwt phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/labstack/echo-jwt.
labstack/echo-jwt có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho labstack/echo-jwt. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
labstack/echo-jwt còn đang phát triển không?
Commit gần nhất trên labstack/echo-jwt là 1 tháng trước (theo timestamp GitHub). Repo có 14 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
Đọc đầy đủ README ở tab phía trên.
echo-jwt có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về echo-jwt.