如何用JS编码
How to encode with JS
我正在尝试为第三方生成一些签名 API,但出现以下错误:合作伙伴未获得授权。这意味着我没有对我的搜索词进行编码或创建签名。
签名是时间戳、访问密钥和查询条件的编码哈希值。
下面是我的代码:
const timestamp = Date.now();
const searchTerm = encodeURI(this.state.searchText);
const signature = sha1(timestamp + searchTerm);
第三
为了网页安全,查询字词在呈现到页面之前应进行 Java 脚本编码。这是一个例子:
queryTermEncoded = '@HttpUtility.JavaScriptStringEncode(queryTerm)';
如何从上面编码时间戳和签名,好像 encodeURI 不起作用,我无法编码?
我需要以某种方式对时间戳和搜索词进行编码。
下面是一些写在Java、Ruby等地方的例子
http://www.infospace.com/partners/sdk/csr/signingSample.html
根据 C# 示例,我认为问题出在日期和 encodeURI 上,试试这个:
// now UTC
var date = new Date(Date.now());
// add 30 seconds like the examples
date.setSeconds(date.getSeconds() + 30);
// format to "yyyyMMddHHmm"
const timestamp = date.toISOString().replace(/[^0-9]/g, '').substr(0, 12);
// dont need to encode
const searchTerm = this.state.searchText;
// hash timestamp + token + searchTerm
const signature = sha1(timestamp + token + searchTerm);
我正在尝试为第三方生成一些签名 API,但出现以下错误:合作伙伴未获得授权。这意味着我没有对我的搜索词进行编码或创建签名。
签名是时间戳、访问密钥和查询条件的编码哈希值。
下面是我的代码:
const timestamp = Date.now();
const searchTerm = encodeURI(this.state.searchText);
const signature = sha1(timestamp + searchTerm);
第三 为了网页安全,查询字词在呈现到页面之前应进行 Java 脚本编码。这是一个例子: queryTermEncoded = '@HttpUtility.JavaScriptStringEncode(queryTerm)';
如何从上面编码时间戳和签名,好像 encodeURI 不起作用,我无法编码? 我需要以某种方式对时间戳和搜索词进行编码。
下面是一些写在Java、Ruby等地方的例子
http://www.infospace.com/partners/sdk/csr/signingSample.html
根据 C# 示例,我认为问题出在日期和 encodeURI 上,试试这个:
// now UTC
var date = new Date(Date.now());
// add 30 seconds like the examples
date.setSeconds(date.getSeconds() + 30);
// format to "yyyyMMddHHmm"
const timestamp = date.toISOString().replace(/[^0-9]/g, '').substr(0, 12);
// dont need to encode
const searchTerm = this.state.searchText;
// hash timestamp + token + searchTerm
const signature = sha1(timestamp + token + searchTerm);