
router := httprouter.New()router.GET("/login",Login) // auth not requiredrouter.GET("/",Index) // auth requireds := negroni.Classic()s.Use(sessions.Sessions("example-web-dev",cookiestore.New([]byte("some garbage"))))s.Use(authenticator.Get())s.UseHandler(router) 其中/ login是一条路线,我不想通过中间件和/来要求授权. authenticator.Get()是我的身份验证处理程序函数,其中包含我认为与问题无关的内容.
如何将authenticator.Get()应用于/而不是/ login?请记住,在登录和许多其他门控路线旁边还会有其他几条“公共”路线.
一些链接:
> https://github.com/codegangsta/negroni
> https://github.com/codegangsta/negroni/issues/25
> http://godoc.org/github.com/codegangsta/negroni
> http://godoc.org/github.com/julienschmidt/httprouter
router := httprouter.New()router.Handler("GET","/login",negroni.New(negroni.HandlerFunc(loginHandler)))router.Handler("GET","/",negroni.New(authenticator.Get(),negroni.HandlerFunc(indexHandler)))server := negroni.Classic()server.UseHandler(router)server.Use(sessions.Sessions("example-web-dev",cookiestore.New([]byte("some secret"))))server.Run(":3000") loginHandler和indexHandler都需要具有此方法签名:
func(http.ResponseWriter,*http.Request,http.HandlerFunc)
在给定的示例中,所有路由都将使用negroni.Classic()提供的中间件和添加到服务器的会话中间件,但只使用我将在authenticator.Get()中创建的中间件.
总结以上是内存溢出为你收集整理的web – 使用Negroni的路由特定中间件全部内容,希望文章能够帮你解决web – 使用Negroni的路由特定中间件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)