From cf9e02efcbecea74cb7b1da219140a2d75c0404f Mon Sep 17 00:00:00 2001 From: DROGOU Laurent Date: Fri, 29 Jan 2021 00:53:05 +0100 Subject: [PATCH] corrections typo parametre du flow oauth2 --- model/oauth.go | 14 +++++++------- routes.auth.go | 13 +++++++------ store/store.go | 6 +++--- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/model/oauth.go b/model/oauth.go index 259e010..2ca25d1 100644 --- a/model/oauth.go +++ b/model/oauth.go @@ -3,14 +3,14 @@ package model import "fmt" type Oauth struct { - ID int64 `db:"id"` - AccessToken string `db:"access_token"` - TokenType string `db:"token_type"` - ExpireIN int `db:"expire_in"` - RefreshToken string `db:"refresh_token"` + ID int64 `db:"id"` + AccessToken string `db:"access_token"` + TokenType string `db:"token_type"` + ExpiresIN float64 `db:"expires_in"` + RefreshToken string `db:"refresh_token"` } func (o Oauth) String() string { - return fmt.Sprintf("id=%v, accessToken=%v, tokenType=%v, expireIN=%v, refreshToken=%v", - o.ID, o.AccessToken, o.TokenType, o.ExpireIN, o.RefreshToken) + return fmt.Sprintf("id=%v, accessToken=%v, tokenType=%v, expiresIN=%v, refreshToken=%v", + o.ID, o.AccessToken, o.TokenType, o.ExpiresIN, o.RefreshToken) } diff --git a/routes.auth.go b/routes.auth.go index 1b45f3d..d14eb52 100644 --- a/routes.auth.go +++ b/routes.auth.go @@ -106,7 +106,7 @@ func (s *server) handleLocal() http.HandlerFunc { ID: 0, AccessToken: at, TokenType: "bearer", - ExpireIN: -1, + ExpiresIN: -1, RefreshToken: "refresh", } err = s.store.CreateOauth(o) @@ -183,12 +183,13 @@ func (s *server) handleRedirect() http.HandlerFunc { fmt.Printf("erreur à la recupération des param (err=%v)", err) } jsonStr := constJSONToken(c, st, p) - log.Printf("jsonStr %v", jsonStr) + //log.Printf("jsonStr %v", jsonStr) apiURL := "https://api." + p.Domaine + "/auth/v1/oauth2.0/accessToken" data := url.Values{} log.Printf("data %v", data) data.Set("client_id", jsonStr.ClientID) data.Set("client_secret", jsonStr.ClientSecret) + //"YNVZF88dD4vny59k") data.Set("grant_type", jsonStr.GrantType) data.Set("redirect_uri", jsonStr.RedirectURI) data.Set("code", jsonStr.Code) @@ -198,6 +199,7 @@ func (s *server) handleRedirect() http.HandlerFunc { if err != nil { log.Printf("erreur sur le post (err=%v)", err) } + req.Header.Add("Content-Type", "application/x-www-form-urlencoded") req.Header.Add("Content-Length", strconv.Itoa(len(data.Encode()))) req.Header.Add("Accept", "application/json") @@ -224,13 +226,12 @@ func (s *server) handleRedirect() http.HandlerFunc { s.response(rw, r, nil, http.StatusBadGateway) return } - // Insert en base de données o := &model.Oauth{ ID: 0, AccessToken: t["access_token"].(string), - TokenType: t["type_token"].(string), - ExpireIN: t["expire_in"].(int), + TokenType: t["token_type"].(string), + ExpiresIN: t["expires_in"].(float64), RefreshToken: t["refresh_token"].(string), } err = s.store.CreateOauth(o) @@ -305,7 +306,7 @@ func constJSONToken(code, state string, param *model.Param) JSONToken { ClientID: param.ClientID, ClientSecret: param.ClientSecret, GrantType: param.GrantType, - RedirectURI: "http://localhost:8080/oauth/redirect%3Fstate=" + state, + RedirectURI: "http://localhost:8080/oauth/redirect?state=" + state, Code: code, } } diff --git a/store/store.go b/store/store.go index b051b0b..78215e7 100644 --- a/store/store.go +++ b/store/store.go @@ -31,7 +31,7 @@ CREATE TABLE IF NOT EXISTS oauth id INTEGER PRIMARY KEY AUTOINCREMENT, access_token TEXT, token_type TEXT, - expire_in INTEGER, + expires_in INTEGER, refresh_token TEXT ) ` @@ -77,8 +77,8 @@ func (store *DbStore) GetOauth(id int64) (*model.Oauth, error) { } func (store *DbStore) CreateOauth(o *model.Oauth) error { - res, err := store.db.Exec("INSERT INTO oauth (access_token, token_type, expire_in, refresh_token) VALUES (?, ?, ?, ?)", - o.AccessToken, o.TokenType, o.ExpireIN, o.RefreshToken) + res, err := store.db.Exec("INSERT INTO oauth (access_token, token_type, expires_in, refresh_token) VALUES (?, ?, ?, ?)", + o.AccessToken, o.TokenType, o.ExpiresIN, o.RefreshToken) if err != nil { return err