diff --git a/gothic/gothic.go b/gothic/gothic.go
index <HASH>..<HASH> 100644
--- a/gothic/gothic.go
+++ b/gothic/gothic.go
@@ -99,6 +99,14 @@ var SetState = func(req *http.Request) string {
 // This is used to prevent CSRF attacks, see
 // http://tools.ietf.org/html/rfc6749#section-10.12
 var GetState = func(req *http.Request) string {
+
+	params := req.URL.Query()
+	if params.Encode() == "" && req.Method == "POST" {
+		req.ParseForm()
+		params = req.Form
+		return params.Get("state")
+	}
+
 	return req.URL.Query().Get("state")
 }
fetch state from post param instead of url query param