メモ go-swaggerでcookieをsetする

middleware.Responder を実装してCookieをsetする. func Handler(params foo.Requestparams) middleware.Responder { ... 何らかの処理 ... return NewSetCookieResponder(foo.NewSetCookieOK().WithPayload(&models.SetCookieResponse{})) } type SetCookieResponder struct { responder middleware.Responder } func NewSetCookieResponder(responder middleware.Responder) *SetCookieResponder { return &SetCookieResponder{ responder: responder, } } func (l *SetCookieResponder) WriteResponse(rw http.ResponseWriter, p runtime.Producer) { http.SetCookie(rw, &http.Cookie{ Name: "some token name", Value: "hogehogehoge", Domain: "localhost", Path: "/", HttpOnly: true, Secure: true, Expires: time.Now().Add(7 * 24 * time.Hour), SameSite: http.SameSiteStrictMode, }) l.responder.WriteResponse(rw, p) }

2月 5, 2021