corrections typo parametre du flow oauth2

This commit is contained in:
2021-01-29 00:53:05 +01:00
parent 29c7e70cc9
commit cf9e02efcb
3 changed files with 17 additions and 16 deletions

View File

@@ -6,11 +6,11 @@ type Oauth struct {
ID int64 `db:"id"`
AccessToken string `db:"access_token"`
TokenType string `db:"token_type"`
ExpireIN int `db:"expire_in"`
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)
}

View File

@@ -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,
}
}

View File

@@ -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