code: func (req *AuthnRequest) Post(relayState string) []byte {
  	reqBuf, err := xml.Marshal(req)
  	if err != nil {
  		panic(err)
  	}
  	encodedReqBuf := base64.StdEncoding.EncodeToString(reqBuf)
  
  	tmpl := template.Must(template.New("saml-post-form").Parse(`` +
  		`<form method="post" action="{{.URL}}" id="SAMLRequestForm">` +
  		`<input type="hidden" name="SAMLRequest" value="{{.SAMLRequest}}" />` +
  		`<input type="hidden" name="RelayState" value="{{.RelayState}}" />` +
  		`<input type="submit" value="Submit" />` +
  		`</form>` +
  		`<script>document.getElementById('SAMLRequestForm').submit();</script>`))
  	data := struct {
  		URL         string
  		SAMLRequest string
  		RelayState  string
  	}{
  		URL:         req.Destination,
  		SAMLRequest: encodedReqBuf,
  		RelayState:  relayState,
  	}
  
  	rv := bytes.Buffer{}
  	if err := tmpl.Execute(&rv, data); err != nil {
  		panic(err)
  	}
  
  	return rv.Bytes()
  }
docs: // Post returns an HTML form suitable for using the HTTP-POST binding with the request