先來簡單講講,為何需要?
因為是秘密所以不想讓人知道。
而在如何做到這點?
你不要說不就沒事了 (X)
在生活中我們有很多一定要接受的事,
例如:
我沒辦法控制我得體重啊
我隔壁同事交不到女朋友啊!
我隔壁同事交不到女朋友啊!
我隔壁同事交不到女朋友啊!
一定要藉由網路傳遞得一些敏感訊息 ( token
或 密碼
之類的 )
...
那我們從那麼多的生活例子拿最後一個來說,我隔壁同事交不到女朋友已經不是秘密了 (硬要嘴)
就是當我們藉由網路上,
必須要透過帳號密碼來註冊某網站的會員
又或是藉由登入透過 token
,來授權某些行為時,
那不管是 密碼
還是 token
都可以存取我們一些個人資料,
我相信你不會想要被做壞壞的事吧!
那這時你就需要透過加密來把明文變成密文,
目的就是為了不讓他人能夠輕易的被取得或是猜到。
而加密技術百百種我們這邊就不多做解釋,
我剛好逛到一篇我覺得整理的非常詳細的有興趣可以看一下
[CH18]加密技術(Cryptography)
注意:
這篇是很簡單的使用而已,沒有太多專業的分析研究,請斟酌觀賞感謝~
申請 API Key
用 Node 串接
結果:
恭喜老爺賀喜夫人成功啦
今天文章到此結束
感謝大家
.
.
.
.
.
.
.
.
上面是受到這張圖的啟發 xDD
其實官方恰恰好有 Node 的範例
那我們為了不跑題這篇主要來關注的是如何透過 crypto
模組來加密獲取 API
所需要的 headers
headers: {
'X-BITOPRO-APIKEY': apiKey,
'X-BITOPRO-PAYLOAD': payload, // For the authenticated APIs using DELETE method, you don't need the payload field.
'X-BITOPRO-SIGNATURE': signature
},
const payload = Buffer.from(JSON.stringify(body)).toString('base64')
const signature = const crypto = require('crypto')
crypto
.createHmac('sha384', apiSecret)
.update(payload)
.digest('hex')
使用方式看起來是不是很簡單!
接著你就可以把這些塞到 headers ,來使用你的 API 囉
(這邊以拿 User Balance 為例)
完整程式碼參照官方詳細使用您可以自己調整我只是懶惰
const request = require('request')
const crypto = require('crypto')
const apiKey = '[Your API key here]'
const apiSecret = '[Your API secret here]'
const baseUrl = 'https://api.bitopro.com/v2'
const url = '/accounts/balance'
const nonce = Date.now()
const completeURL = baseUrl + url
// This is the default body for the authenticated APIs using GET method
const body = { identity: '[Your account (email)]', nonce }
const payload = Buffer.from(JSON.stringify(body)).toString('base64')
const signature = crypto
.createHmac('sha384', apiSecret)
.update(payload)
.digest('hex')
const options = {
url: completeURL,
headers: {
'X-BITOPRO-APIKEY': apiKey,
'X-BITOPRO-PAYLOAD': payload, // For the authenticated APIs using DELETE method, you don't need the payload field.
'X-BITOPRO-SIGNATURE': signature
},
body: JSON.stringify(body) // For the authenticated APIs using GET method, you don't need the body field.
}
// GET
return request.get(
options,
function(error, response, body) {
console.log('response:', JSON.stringify(body, 0, 2))
}
)
以上
真的結束了xDD
感謝您的收看
越來越發現好像快沒東西寫了 xDD
專案的文章又沒辦法短時間內完成,有點尬 QQ