亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

access key 筆記

lavnFan / 3342人閱讀

摘要:題外話微信公眾號(hào)開(kāi)發(fā)接口里面,是通過(guò)調(diào)用微信的接口的。生成方式如下接口調(diào)用請(qǐng)求說(shuō)明請(qǐng)求方式通過(guò)傳給微信后臺(tái),后臺(tái)就會(huì)返回,這個(gè)是有有效期的,有點(diǎn)類(lèi)似瀏覽器登錄。正常情況下,微信會(huì)返回下述數(shù)據(jù)不過(guò)個(gè)人覺(jué)得傳的方式不太優(yōu)雅。

用戶(hù)認(rèn)證

后臺(tái)服務(wù)要提供公共接口給用戶(hù)調(diào)用,必須要提供認(rèn)證機(jī)制,一旦用戶(hù)認(rèn)證通過(guò),才讓用戶(hù)調(diào)用API。對(duì)于次,可以通過(guò)(access_key,secret_access_key)來(lái)認(rèn)證。
這個(gè)(access_key,secret_access_key)是成對(duì)存在的。用戶(hù)要調(diào)用API必須要申請(qǐng)這樣的一對(duì)數(shù)據(jù)。一般工作流程是:

用戶(hù)在前端申請(qǐng)access key

服務(wù)器在后臺(tái)生成(access_key,secret_access_key),然后存進(jìn)數(shù)據(jù)庫(kù),然后把這對(duì)數(shù)據(jù)返回給用戶(hù)

用戶(hù)的調(diào)用API流程是:

通過(guò)secret_access_key來(lái)給請(qǐng)求參數(shù)簽名,并且把簽名附加到請(qǐng)求里,然后發(fā)請(qǐng)求給服務(wù)器

服務(wù)器通過(guò)請(qǐng)求里的參數(shù)access_key來(lái)查詢(xún)數(shù)據(jù)庫(kù)里的secret_access_key,然后用secret_access_key計(jì)算請(qǐng)求參數(shù)的簽名是否跟請(qǐng)求里的簽名一致,一致則確認(rèn)用戶(hù)身份,不一致則拒絕訪問(wèn)。

簽名

接下來(lái)介紹給參數(shù)簽名的方法。如果請(qǐng)求參數(shù)如下:

{
    "name": "fami",
    "address": "pek"
}

把a(bǔ)ccess_key加進(jìn)這個(gè)請(qǐng)求里:

{
    "name": "fami",
    "address": "pek",
    "access_key": "abc"
}

將這些參數(shù)按key的字母升序排序,然后以key=value的形式表示,然后用&連接起來(lái)。效果如下:

access_key=abc&address=pek&name=fami

然后用以secret_access_key為key用sha256(或其他算法)對(duì)這個(gè)字符串進(jìn)行簽名,如果簽名后得到`

signature = "xxxxxxxx"

那么把這個(gè)簽名添加到請(qǐng)求參數(shù)里,得到

{
    "access_key": "abc",
    "name": "fami",
    "address": "pek",
    "signature": "xxxxxxxx"
}

最終把這個(gè)發(fā)給服務(wù)器,服務(wù)器根據(jù)參數(shù)里的access_key去查看secret_access_key,然后把參數(shù)里的signature字段取出來(lái),用前面的簽名方法來(lái)對(duì)剩下的參數(shù)進(jìn)行簽名,如果發(fā)現(xiàn)自己計(jì)算的簽名跟請(qǐng)求參數(shù)里的簽名一樣,那么則通過(guò)認(rèn)證。

安全問(wèn)題

這里會(huì)有一個(gè)問(wèn)題:如果這個(gè)(access_key,secret_access_key)被別人知道了,那么別人就會(huì)以我的身份去調(diào)用API了。確實(shí)會(huì)有這個(gè)問(wèn)題,針對(duì)此,可以用以下的方法來(lái)減小影響。

access key支持ip白名單,只有在白名單內(nèi)的ip才可以調(diào)用API。

access key支持設(shè)置有效期,也就是在有效時(shí)間內(nèi),該access key有效,過(guò)了這個(gè)有效期,就拒絕訪問(wèn)。

access key支持修改狀態(tài),只有狀態(tài)為可用的情況下,服務(wù)器才會(huì)接受。

用戶(hù)使用API必然會(huì)擔(dān)心安全問(wèn)題。在此之外還可以做些類(lèi)似定期提醒用戶(hù)修改access key狀態(tài),或者定期刪除access key。

題外話

微信公眾號(hào)開(kāi)發(fā)接口里面,是通過(guò)access_token調(diào)用微信的接口的。access_token生成方式如下:

接口調(diào)用請(qǐng)求說(shuō)明

https請(qǐng)求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

通過(guò)傳appid, appsecret給微信api后臺(tái),后臺(tái)就會(huì)返回access_token,這個(gè)access_token是有有效期的,有點(diǎn)類(lèi)似瀏覽器登錄。
正常情況下,微信會(huì)返回下述JSON數(shù)據(jù):

{"access_token":"ACCESS_TOKEN","expires_in":7200}

不過(guò)個(gè)人覺(jué)得傳appsecret的方式不太優(yōu)雅。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41906.html

相關(guān)文章

  • 關(guān)于ThinkPHP5中使用 Auth2 驗(yàn)證的實(shí)現(xiàn)

    在tp上實(shí)現(xiàn)的auth2驗(yàn)證的,在網(wǎng)上發(fā)現(xiàn)筆記很少, 不像yii, 故在此發(fā)表一下筆記,用來(lái)幫助有相關(guān)需求的朋友 PS: 鑒于oauth2有四種方案, 本實(shí)例是基于 客戶(hù)端憑證 實(shí)現(xiàn),其他三種就不講述了 一、通過(guò)composer安裝 composer require --prefer-dist bshaffer/oauth2-server-php 安裝完成后,如圖:showImg(https://...

    alaege 評(píng)論0 收藏0
  • js 閉包理解筆記

    摘要:發(fā)現(xiàn)指向的是,也就是說(shuō),在函數(shù)內(nèi)部實(shí)現(xiàn)的閉包函數(shù)已經(jīng)被轉(zhuǎn)變成了全局函數(shù),存儲(chǔ)到了內(nèi)存中。閉包同樣可以模擬面向?qū)ο蟮乃接凶兞康姆椒ê妥兞康氖褂煤瞳@取。 https://developer.mozilla.org... 首先引用來(lái)自官網(wǎng)文檔的定義: closure is the combination of a function and the lexical environment wi...

    liuyix 評(píng)論0 收藏0
  • Nginx基礎(chǔ)筆記

    摘要:壓力測(cè)試工具請(qǐng)求數(shù)并發(fā)數(shù)請(qǐng)求是一個(gè)高性能的和反向代理服務(wù),也是一個(gè)服務(wù)。 壓力測(cè)試工具:ab ab -n 請(qǐng)求數(shù) -c 并發(fā)數(shù) 請(qǐng)求url Nginx: Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù),也是一個(gè)IMAP/POP3/SMTP服務(wù)。 特點(diǎn): IO多路復(fù)用epoll 輕量級(jí) CPU親和(affinity):把每個(gè)worker進(jìn)程固定在一個(gè)cpu上執(zhí)...

    caige 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<