私は、go-restfulで書かれた非常にシンプルなgoサービスでJWT認証を接続しようとしています。go-restful + JWT認証
コードは、と非常に類似している:restful.Request
がhttp.Request
のラッパーである
package main
import (
"github.com/emicklei/go-restful"
"log"
"net/http"
)
type User struct {
Id, Name string
}
type UserList struct {
Users []User
}
func getAllUsers(request *restful.Request, response *restful.Response) {
log.Printf("getAllUsers")
response.WriteEntity(UserList{[]User{{"42", "Gandalf"}, {"3.14", "Pi"}}})
}
func NewUserService() *restful.WebService {
ws := new(restful.WebService)
ws.
Path("/users").
Consumes(restful.MIME_XML, restful.MIME_JSON).
Produces(restful.MIME_JSON, restful.MIME_XML)
ws.Route(ws.GET("").To(getAllUsers))
return ws
}
func main() {
restful.Add(NewUserService())
log.Printf("start listening on localhost:8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
。
つまり、Auth0 jwt middlewareを使用することができます。
しかし、ゴランの初心者として、私は配管プロセスで少し失われています。私は
func jwtAuthentication(req *restful.Request, resp *restful.Response, chain *restful.FilterChain) {
// Jwt Magic goes here \o
chain.ProcessFilter(req, resp)
}
ws.Filter(jwtAuthentication)
ようFilter
機能を使用する必要があります。しかし、私はどこでどのように把握していない私はJWTミドルウェアをインスタンス化する必要があることを参照してください。