How do I add CSRF protection with Gin in Go?

To add CSRF protection in your Gin application, you can use the 'github.com/justinas/nosurf' package. This package provides an easy way to implement CSRF protection in web applications.

Here is an example of how to set up CSRF protection in a Gin application:

package main import ( "github.com/gin-gonic/gin" "github.com/justinas/nosurf" "net/http" ) func main() { r := gin.Default() r.Use(csrfMiddleware()) r.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "index.tmpl", gin.H{ "csrfToken": nosurf.Token(c.Request), }) }) r.POST("/submit", func(c *gin.Context) { // Handle the form submission c.String(http.StatusOK, "Form submitted successfully!") }) r.Run(":8080") } func csrfMiddleware() gin.HandlerFunc { return func(c *gin.Context) { nosurf.New(c.Writer, c.Request).ServeHTTP(c.Writer, c.Request) } }

csrf protection go gin framework web security nosurf package go web development