mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-03 20:50:19 +08:00
refactor: remove ClientId/ClientSecret/RedirectUrl in IdProvider int /idp/github.go & google.go & qq.go; alter Scopes in QqIdProvider.Config: profile&email -> get_user_info
Signed-off-by: Weihao <1340908470@qq.com>
This commit is contained in:
@ -27,17 +27,10 @@ import (
|
|||||||
type GithubIdProvider struct {
|
type GithubIdProvider struct {
|
||||||
Client *http.Client
|
Client *http.Client
|
||||||
Config *oauth2.Config
|
Config *oauth2.Config
|
||||||
ClientId string
|
|
||||||
ClientSecret string
|
|
||||||
RedirectUrl string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewGithubIdProvider(clientId string, clientSecret string, redirectUrl string) *GithubIdProvider {
|
func NewGithubIdProvider(clientId string, clientSecret string, redirectUrl string) *GithubIdProvider {
|
||||||
idp := &GithubIdProvider{
|
idp := &GithubIdProvider{}
|
||||||
ClientId: clientId,
|
|
||||||
ClientSecret: clientSecret,
|
|
||||||
RedirectUrl: redirectUrl,
|
|
||||||
}
|
|
||||||
|
|
||||||
config := idp.getConfig()
|
config := idp.getConfig()
|
||||||
config.ClientID = clientId
|
config.ClientID = clientId
|
||||||
|
@ -27,17 +27,10 @@ import (
|
|||||||
type GoogleIdProvider struct {
|
type GoogleIdProvider struct {
|
||||||
Client *http.Client
|
Client *http.Client
|
||||||
Config *oauth2.Config
|
Config *oauth2.Config
|
||||||
ClientId string
|
|
||||||
ClientSecret string
|
|
||||||
RedirectUrl string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewGoogleIdProvider(clientId string, clientSecret string, redirectUrl string) *GoogleIdProvider {
|
func NewGoogleIdProvider(clientId string, clientSecret string, redirectUrl string) *GoogleIdProvider {
|
||||||
idp := &GoogleIdProvider{
|
idp := &GoogleIdProvider{}
|
||||||
ClientId: clientId,
|
|
||||||
ClientSecret: clientSecret,
|
|
||||||
RedirectUrl: redirectUrl,
|
|
||||||
}
|
|
||||||
|
|
||||||
config := idp.getConfig()
|
config := idp.getConfig()
|
||||||
config.ClientID = clientId
|
config.ClientID = clientId
|
||||||
|
19
idp/qq.go
19
idp/qq.go
@ -29,17 +29,10 @@ import (
|
|||||||
type QqIdProvider struct {
|
type QqIdProvider struct {
|
||||||
Client *http.Client
|
Client *http.Client
|
||||||
Config *oauth2.Config
|
Config *oauth2.Config
|
||||||
ClientId string
|
|
||||||
ClientSecret string
|
|
||||||
RedirectUrl string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewQqIdProvider(clientId string, clientSecret string, redirectUrl string) *QqIdProvider {
|
func NewQqIdProvider(clientId string, clientSecret string, redirectUrl string) *QqIdProvider {
|
||||||
idp := &QqIdProvider{
|
idp := &QqIdProvider{}
|
||||||
ClientId: clientId,
|
|
||||||
ClientSecret: clientSecret,
|
|
||||||
RedirectUrl: redirectUrl,
|
|
||||||
}
|
|
||||||
|
|
||||||
config := idp.getConfig()
|
config := idp.getConfig()
|
||||||
config.ClientID = clientId
|
config.ClientID = clientId
|
||||||
@ -60,7 +53,7 @@ func (idp *QqIdProvider) getConfig() *oauth2.Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var config = &oauth2.Config{
|
var config = &oauth2.Config{
|
||||||
Scopes: []string{"profile", "email"},
|
Scopes: []string{"get_user_info"},
|
||||||
Endpoint: endpoint,
|
Endpoint: endpoint,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,10 +63,10 @@ func (idp *QqIdProvider) getConfig() *oauth2.Config {
|
|||||||
func (idp *QqIdProvider) GetToken(code string) (*oauth2.Token, error) {
|
func (idp *QqIdProvider) GetToken(code string) (*oauth2.Token, error) {
|
||||||
params := url.Values{}
|
params := url.Values{}
|
||||||
params.Add("grant_type", "authorization_code")
|
params.Add("grant_type", "authorization_code")
|
||||||
params.Add("client_id", idp.ClientId)
|
params.Add("client_id", idp.Config.ClientID)
|
||||||
params.Add("client_secret", idp.ClientSecret)
|
params.Add("client_secret", idp.Config.ClientSecret)
|
||||||
params.Add("code", code)
|
params.Add("code", code)
|
||||||
params.Add("redirect_uri", idp.RedirectUrl)
|
params.Add("redirect_uri", idp.Config.RedirectURL)
|
||||||
|
|
||||||
getAccessTokenUrl := fmt.Sprintf("https://graph.qq.com/oauth2.0/token?%s", params.Encode())
|
getAccessTokenUrl := fmt.Sprintf("https://graph.qq.com/oauth2.0/token?%s", params.Encode())
|
||||||
tokenResponse, err := idp.Client.Get(getAccessTokenUrl)
|
tokenResponse, err := idp.Client.Get(getAccessTokenUrl)
|
||||||
@ -113,7 +106,7 @@ func (idp *QqIdProvider) GetUserInfo(token *oauth2.Token) (*UserInfo, error) {
|
|||||||
return nil, errors.New("openId is empty")
|
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.AccessToken, 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.Config.ClientID, openId)
|
||||||
getUserInfoResponse, err := idp.Client.Get(getUserInfoUrl)
|
getUserInfoResponse, err := idp.Client.Get(getUserInfoUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Reference in New Issue
Block a user