Improve IDP username handling.

This commit is contained in:
Yang Luo
2021-03-24 00:11:20 +08:00
parent 39d208ccd0
commit 540adfed20
4 changed files with 12 additions and 25 deletions

View File

@ -32,8 +32,8 @@ type GoogleIdProvider struct {
RedirectUrl string
}
func NewGoogleIdProvider(clientId string, clientSecret string, redirectUrl string) *GithubIdProvider {
idp := &GithubIdProvider{
func NewGoogleIdProvider(clientId string, clientSecret string, redirectUrl string) *GoogleIdProvider {
idp := &GoogleIdProvider{
ClientId: clientId,
ClientSecret: clientSecret,
RedirectUrl: redirectUrl,
@ -91,6 +91,7 @@ func (idp *GoogleIdProvider) GetUserInfo(token *oauth2.Token) (*UserInfo, error)
return userInfo, errors.New("google email is empty")
}
userInfo.Username = userResponse.Email
userInfo.Email = userResponse.Email
userInfo.AvatarUrl = userResponse.Picture
return userInfo, nil

View File

@ -113,7 +113,7 @@ func (idp *QqIdProvider) GetUserInfo(token *oauth2.Token) (*UserInfo, error) {
return nil, errors.New("openId is empty")
}
getUserInfoUrl := fmt.Sprintf("https://graph.qq.com/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s", token, idp.ClientId, openId)
getUserInfoUrl := fmt.Sprintf("https://graph.qq.com/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s", token.AccessToken, idp.ClientId, openId)
getUserInfoResponse, err := idp.Client.Get(getUserInfoUrl)
if err != nil {
return nil, err
@ -128,7 +128,7 @@ func (idp *QqIdProvider) GetUserInfo(token *oauth2.Token) (*UserInfo, error) {
defer getUserInfoResponse.Body.Close()
userInfoContent, err := ioutil.ReadAll(getUserInfoResponse.Body)
var userResponse response
err = json.Unmarshal(userInfoContent, &userInfo)
err = json.Unmarshal(userInfoContent, &userResponse)
if err != nil {
return nil, err
}