国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

access key 筆記

lavnFan / 3242人閱讀

摘要:題外話微信公眾號開發接口里面,是通過調用微信的接口的。生成方式如下接口調用請求說明請求方式通過傳給微信后臺,后臺就會返回,這個是有有效期的,有點類似瀏覽器登錄。正常情況下,微信會返回下述數據不過個人覺得傳的方式不太優雅。

用戶認證

后臺服務要提供公共接口給用戶調用,必須要提供認證機制,一旦用戶認證通過,才讓用戶調用API。對于次,可以通過(access_key,secret_access_key)來認證。
這個(access_key,secret_access_key)是成對存在的。用戶要調用API必須要申請這樣的一對數據。一般工作流程是:

用戶在前端申請access key

服務器在后臺生成(access_key,secret_access_key),然后存進數據庫,然后把這對數據返回給用戶

用戶的調用API流程是:

通過secret_access_key來給請求參數簽名,并且把簽名附加到請求里,然后發請求給服務器

服務器通過請求里的參數access_key來查詢數據庫里的secret_access_key,然后用secret_access_key計算請求參數的簽名是否跟請求里的簽名一致,一致則確認用戶身份,不一致則拒絕訪問。

簽名

接下來介紹給參數簽名的方法。如果請求參數如下:

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

把access_key加進這個請求里:

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

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

access_key=abc&address=pek&name=fami

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

signature = "xxxxxxxx"

那么把這個簽名添加到請求參數里,得到

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

最終把這個發給服務器,服務器根據參數里的access_key去查看secret_access_key,然后把參數里的signature字段取出來,用前面的簽名方法來對剩下的參數進行簽名,如果發現自己計算的簽名跟請求參數里的簽名一樣,那么則通過認證。

安全問題

這里會有一個問題:如果這個(access_key,secret_access_key)被別人知道了,那么別人就會以我的身份去調用API了。確實會有這個問題,針對此,可以用以下的方法來減小影響。

access key支持ip白名單,只有在白名單內的ip才可以調用API。

access key支持設置有效期,也就是在有效時間內,該access key有效,過了這個有效期,就拒絕訪問。

access key支持修改狀態,只有狀態為可用的情況下,服務器才會接受。

用戶使用API必然會擔心安全問題。在此之外還可以做些類似定期提醒用戶修改access key狀態,或者定期刪除access key。

題外話

微信公眾號開發接口里面,是通過access_token調用微信的接口的。access_token生成方式如下:

接口調用請求說明

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

通過傳appid, appsecret給微信api后臺,后臺就會返回access_token,這個access_token是有有效期的,有點類似瀏覽器登錄。
正常情況下,微信會返回下述JSON數據:

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

不過個人覺得傳appsecret的方式不太優雅。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41906.html

相關文章

  • 關于ThinkPHP5中使用 Auth2 驗證的實現

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

    alaege 評論0 收藏0
  • js 閉包理解筆記

    摘要:發現指向的是,也就是說,在函數內部實現的閉包函數已經被轉變成了全局函數,存儲到了內存中。閉包同樣可以模擬面向對象的私有變量的方法和變量的使用和獲取。 https://developer.mozilla.org... 首先引用來自官網文檔的定義: closure is the combination of a function and the lexical environment wi...

    liuyix 評論0 收藏0
  • Nginx基礎筆記

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

    caige 評論0 收藏0

發表評論

0條評論

lavnFan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<