mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 12:52:27 +08:00
fix: work js-api signature (#818)
* feat: enhance WorkAccessToken to include AgentID for improved token management - Added AgentID field to WorkAccessToken struct. - Updated NewWorkAccessToken function to accept AgentID as a parameter. - Modified access token cache key to incorporate AgentID, ensuring unique cache entries per agent. This change improves the handling of access tokens in a multi-agent environment. * refactor: enhance WorkAccessToken to improve cache key handling - Updated the AgentID field in WorkAccessToken struct to clarify its optional nature for distinguishing applications. - Modified the access token cache key construction to support both new and legacy formats based on the presence of AgentID. - Added comments for better understanding of the cache key logic and its compatibility with historical versions. This change improves the flexibility and clarity of access token management in multi-agent scenarios. * feat(work): add JsSdk method for JavaScript SDK integration - Introduced a new JsSdk method in the Work struct to facilitate the creation of a Js instance. - This addition enhances the functionality of the Work module by enabling JavaScript SDK support. This change improves the integration capabilities for developers working with the WeChat Work API. * fix gofmt * refactor(jsapi): simplify signature generation in GetConfig and GetAgentConfig methods - Replaced the use of strconv to format the signature string with fmt.Sprintf for improved readability. - Updated the signature generation logic in both GetConfig and GetAgentConfig methods to use a single formatted string. This change enhances code clarity and maintains functionality in the signature generation process. * fix gofmt * fix gofmt * fix gofmt * fix gofmt * refactor(js): correct initialization of Config in GetConfig method - Removed redundant initialization of the Config variable and ensured it is instantiated correctly before use. - This change improves code clarity and maintains the intended functionality of the GetConfig method.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package jsapi
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"fmt"
|
||||
|
||||
"github.com/silenceper/wechat/v2/credential"
|
||||
"github.com/silenceper/wechat/v2/util"
|
||||
@@ -49,7 +49,8 @@ func (js *Js) GetConfig(uri string) (config *Config, err error) {
|
||||
}
|
||||
config.NonceStr = util.RandomStr(16)
|
||||
config.Timestamp = util.GetCurrTS()
|
||||
config.Signature = util.Signature(ticketStr, config.NonceStr, strconv.FormatInt(config.Timestamp, 10), uri)
|
||||
str := fmt.Sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%d&url=%s", ticketStr, config.NonceStr, config.Timestamp, uri)
|
||||
config.Signature = util.Signature(str)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -68,6 +69,7 @@ func (js *Js) GetAgentConfig(uri string) (config *Config, err error) {
|
||||
}
|
||||
config.NonceStr = util.RandomStr(16)
|
||||
config.Timestamp = util.GetCurrTS()
|
||||
config.Signature = util.Signature(ticketStr, config.NonceStr, strconv.FormatInt(config.Timestamp, 10), uri)
|
||||
str := fmt.Sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%d&url=%s", ticketStr, config.NonceStr, config.Timestamp, uri)
|
||||
config.Signature = util.Signature(str)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user