Skip to content

Commit

Permalink
remove encrypt
Browse files Browse the repository at this point in the history
Signed-off-by: mouuii <[email protected]>
  • Loading branch information
mouuii committed Dec 16, 2021
1 parent 410f99e commit 332f48c
Showing 1 changed file with 28 additions and 28 deletions.
56 changes: 28 additions & 28 deletions pkg/microservice/systemconfig/core/codehost/service/codehost.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ func AuthCodeHost(redirectURI string, codeHostID int, logger *zap.SugaredLogger)
return "", err
}
callbackURL := fmt.Sprintf("%s://%s%s", redirectParsedURL.Scheme, redirectParsedURL.Host, callback)
oauth, err := NewOAuth(codeHost.Type, callbackURL, codeHost.ApplicationId, codeHost.ClientSecret, codeHost.Address)
oauth, err := newOAuth(codeHost.Type, callbackURL, codeHost.ApplicationId, codeHost.ClientSecret, codeHost.Address)
if err != nil {
logger.Errorf("NewOAuth:%s err:%s", codeHost.Type, err)
return "", err
Expand All @@ -113,22 +113,6 @@ func AuthCodeHost(redirectURI string, codeHostID int, logger *zap.SugaredLogger)
return oauth.LoginURL(base64.URLEncoding.EncodeToString(bs)), nil
}

func NewOAuth(provider, callbackURL, clientID, clientSecret, address string) (*oauth.OAuth, error) {
switch provider {
case systemconfig.GitHubProvider:
return oauth.New(callbackURL, clientID, clientSecret, []string{"api", "read_user"},oauth2.Endpoint{
AuthURL: address+"/login/oauth/authorize",
TokenURL: address+"/login/oauth/access_token",
}), nil
case systemconfig.GitLabProvider:
return oauth.New(callbackURL, clientID, clientSecret, []string{"repo", "user"},oauth2.Endpoint{
AuthURL: address+"/oauth/authorize",
TokenURL: address+"/oauth/token",
}), nil
}
return nil, errors.New("illegal provider")
}

func HandleCallback(stateStr string, r *http.Request, logger *zap.SugaredLogger) (string, error) {
// TODO:validate the code
// https://www.jianshu.com/p/c7c8f51713b6
Expand All @@ -137,36 +121,52 @@ func HandleCallback(stateStr string, r *http.Request, logger *zap.SugaredLogger)
logger.Errorf("DecodeString err:%s", err)
return "", err
}
var state state
if err := json.Unmarshal(decryptedState, &state); err != nil {
var sta state
if err := json.Unmarshal(decryptedState, &sta); err != nil {
logger.Errorf("Unmarshal err:%s", err)
return "", err
}
codehost, err := GetCodeHost(state.CodeHostID, logger)
codehost, err := GetCodeHost(sta.CodeHostID, logger)
if err != nil {
return handle(state.RedirectURL, err)
return handle(sta.RedirectURL, err)
}
redirectParsedURL, err := url.Parse(state.RedirectURL)
redirectParsedURL, err := url.Parse(sta.RedirectURL)
if err != nil {
logger.Errorf("ParseURL:%s err:%s", state.RedirectURL, err)
logger.Errorf("ParseURL:%s err:%s", sta.RedirectURL, err)
return "", err
}
callbackURL := fmt.Sprintf("%s://%s%s", redirectParsedURL.Scheme, redirectParsedURL.Host, callback)
o, err := NewOAuth(codehost.Type, callbackURL, codehost.ApplicationId, codehost.ClientSecret, codehost.Address)
o, err := newOAuth(codehost.Type, callbackURL, codehost.ApplicationId, codehost.ClientSecret, codehost.Address)
if err != nil {
return handle(state.RedirectURL, err)
return handle(sta.RedirectURL, err)
}
token, err := o.HandleCallback(r)
if err != nil {
return handle(state.RedirectURL, err)
return handle(sta.RedirectURL, err)
}
codehost.AccessToken = token.AccessToken
codehost.RefreshToken = token.RefreshToken
if _, err := UpdateCodeHostByToken(codehost, logger); err != nil {
logger.Errorf("UpdateCodeHostByToken err:%s", err)
return handle(state.RedirectURL, err)
return handle(sta.RedirectURL, err)
}
return handle(state.RedirectURL, nil)
return handle(sta.RedirectURL, nil)
}

func newOAuth(provider, callbackURL, clientID, clientSecret, address string) (*oauth.OAuth, error) {
switch provider {
case systemconfig.GitHubProvider:
return oauth.New(callbackURL, clientID, clientSecret, []string{"api", "read_user"},oauth2.Endpoint{
AuthURL: address+"/login/oauth/authorize",
TokenURL: address+"/login/oauth/access_token",
}), nil
case systemconfig.GitLabProvider:
return oauth.New(callbackURL, clientID, clientSecret, []string{"repo", "user"},oauth2.Endpoint{
AuthURL: address+"/oauth/authorize",
TokenURL: address+"/oauth/token",
}), nil
}
return nil, errors.New("illegal provider")
}

func handle(redirectURL string, err error) (string, error) {
Expand Down

0 comments on commit 332f48c

Please sign in to comment.