示例#1
0
文件: web.go 项目: cubeee/go-sig
func registerGenerator(generator generators.BaseGenerator) {
	goji.Get(generator.Url(), func(c web.C, writer http.ResponseWriter, request *http.Request) {
		parsedReq, err := generator.ParseSignatureRequest(c, request)
		if err != nil {
			writeTextResponse(writer, "Failed to parse the request: "+err.Error())
			return
		}
		hash := finalizeHash(generator.Name(), generator.CreateHash(parsedReq))
		req := util.SignatureRequest{parsedReq, hash}

		serveSignature(c, writer, request, req, generator)
	})

	formUrl := generator.FormUrl()
	if formUrl != "" {
		goji.Post(formUrl, func(c web.C, writer http.ResponseWriter, request *http.Request) {
			generator.HandleForm(c, writer, request)
		})
	}
}