Add GetMaskedProvider() and GetMaskedProviders().

This commit is contained in:
Yang Luo 2021-12-20 23:46:38 +08:00
parent 3efbcc739d
commit 7cfece3019
5 changed files with 33 additions and 17 deletions

View File

@ -206,7 +206,15 @@ func (c *ApiController) Login() {
}
} else if provider.Category == "OAuth" {
// OAuth
idProvider := idp.GetIdProvider(provider.Type, provider.ClientId, provider.ClientSecret, form.RedirectUri)
clientId := provider.ClientId
clientSecret := provider.ClientSecret
if provider.Type == "WeChat" && strings.Contains(c.Ctx.Request.UserAgent(), "MicroMessenger") {
clientId = provider.ClientId2
clientSecret = provider.ClientSecret2
}
idProvider := idp.GetIdProvider(provider.Type, clientId, clientSecret, form.RedirectUri)
if idProvider == nil {
c.ResponseError(fmt.Sprintf("The provider type: %s is not supported", provider.Type))
return

View File

@ -34,12 +34,12 @@ func (c *ApiController) GetProviders() {
limit := c.Input().Get("pageSize")
page := c.Input().Get("p")
if limit == "" || page == "" {
c.Data["json"] = object.GetProviders(owner)
c.Data["json"] = object.GetMaskedProviders(object.GetProviders(owner))
c.ServeJSON()
} else {
limit := util.ParseInt(limit)
paginator := pagination.SetPaginator(c.Ctx, limit, int64(object.GetProviderCount(owner)))
providers := object.GetPaginationProviders(owner, paginator.Offset(), limit)
providers := object.GetMaskedProviders(object.GetPaginationProviders(owner, paginator.Offset(), limit))
c.ResponseOk(providers, paginator.Nums())
}
}
@ -53,7 +53,7 @@ func (c *ApiController) GetProviders() {
func (c *ApiController) GetProvider() {
id := c.Input().Get("id")
c.Data["json"] = object.GetProvider(id)
c.Data["json"] = object.GetMaskedProvider(object.GetProvider(id))
c.ServeJSON()
}

View File

@ -88,7 +88,7 @@ func getProviderMap(owner string) map[string]*Provider {
// continue
//}
m[provider.Name] = getMaskedProvider(provider)
m[provider.Name] = GetMaskedProvider(provider)
}
return m
}

View File

@ -58,18 +58,26 @@ type Provider struct {
ProviderUrl string `xorm:"varchar(200)" json:"providerUrl"`
}
func getMaskedProvider(provider *Provider) *Provider {
p := &Provider{
Owner: provider.Owner,
Name: provider.Name,
CreatedTime: provider.CreatedTime,
DisplayName: provider.DisplayName,
Category: provider.Category,
Type: provider.Type,
Method: provider.Method,
ClientId: provider.ClientId,
func GetMaskedProvider(provider *Provider) *Provider {
if provider == nil {
return nil
}
return p
if provider.ClientSecret != "" {
provider.ClientSecret = "***"
}
if provider.ClientSecret2 != "" {
provider.ClientSecret2 = "***"
}
return provider
}
func GetMaskedProviders(providers []*Provider) []*Provider {
for _, provider := range providers {
provider = GetMaskedProvider(provider)
}
return providers
}
func GetProviderCount(owner string) int {

View File

@ -201,7 +201,7 @@ export function getAuthUrl(application, provider, method) {
return `${endpoint}?client_id=${provider.clientId}&redirect_uri=${redirectUri}&scope=${scope}&response_type=code&state=${state}`;
} else if (provider.type === "WeChat") {
if (navigator.userAgent.includes("MicroMessenger")) {
return `${authInfo[provider.type].mpEndpoint}?appid=${provider.clientId}&redirect_uri=${redirectUri}&state=${state}&scope=${authInfo[provider.type].mpScope}&response_type=code#wechat_redirect`;
return `${authInfo[provider.type].mpEndpoint}?appid=${provider.clientId2}&redirect_uri=${redirectUri}&state=${state}&scope=${authInfo[provider.type].mpScope}&response_type=code#wechat_redirect`;
} else {
return `${endpoint}?appid=${provider.clientId}&redirect_uri=${redirectUri}&scope=${scope}&response_type=code&state=${state}#wechat_redirect`;
}