關於Oauth1.0認證及認證後呼叫API的方法
假設已經拿到以下 consumer_key:
{ 'consumer_key': '79a7578ce6cf4a6fa27dbf30c6324df4', 'consumer_secret': 'c7ed87c12e784e48983e3bcdc6889dad' }
並且拿到使用者的授權,得到以下 oauth_token:
{ 'oauth_token':'fa361a4a1dfc4a739869020e586582f9', 'oauth_token_secret':'0183ce137e4d4170b2ac19d3a9fda677' }
假設伺服器地址為 openapi.kuaipan.cn,現在需要向 http://openapi.kuaipan.cn/1/fileops/create_folder 用GET方法發出請求,請求引數 (parameters) 如下:
{ 'oauth_version': '1.0', 'oauth_token': 'fa361a4a1dfc4a739869020e586582f9', 'oauth_signature_method': 'HMAC-SHA1', 'oauth_nonce': '58456623', 'oauth_timestamp': 1328881571, 'oauth_consumer_key': '79a7578ce6cf4a6fa27dbf30c6324df4', 'path': '/[email protected]', 'root': 'kuaipan' }
首先計算字元基串 (base string),參考演算法(虛擬碼)可以為:
http_method + "&" + url_encode( base_uri ) + "&" + url_encode( “&”.join( sort( [url_encode ( k ) + "=" +url_encode ( v ) for k, v in paramesters.items() ] ) )
注意點:
- http_method只能為大寫,本例子中是GET;
- base_uri是不包括 "?" 號和其右邊的query引數的uri,本例中是http://openapi.kuaipan.cn/1/fileops/create_folder ,傳輸協議,主機地址必須用小寫,請不要包含埠號,請求路徑也是大小寫區分;
- 引數(parameters)按照其引數名的字典序排序,本例子的順序是[oauth_consumer_key, oauth_nonce, oauth_signature_method, oauth_timestamp, oauth_token, oauth_version, path, root];
- urlencode編碼的字元需要用utf8轉編碼,16進位制部分需要大寫,如等號”=”是%3D而不是%3d;
- urlencode規則:只有字母數字和[.-_~](紅色部分,不包括方括號)不用encode,其他字元都需要,例如urlencode(".-_~+*")=".-_~%20%2B%2A"
這樣我們根據演算法生成字元基串如下(注意藍色部分是%2540而不是%40):
GET&http%3A%2F%2Fopenapi.kuaipan.cn%2F1%2Ffileops%2Fcreate_folder&oauth_consumer_key%3D79a7578ce6cf4a6fa27
dbf30c6324df4%26oauth_nonce%3D58456623%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1328881571
%26oauth_token%3Dfa361a4a1dfc4a739869020e586582f9%26oauth_version%3D1.0%26path%3D%252Ftest%2540kingsoft.com
%26root%3Dkuaipan
然後生成簽名加密的金鑰(記得有個&),注意假如沒有oauth_token的話,藍色部分是不用包含的:
c7ed87c12e784e48983e3bcdc6889dad&0183ce137e4d4170b2ac19d3a9fda677
假如沒有oauth_token的話,金鑰為 c7ed87c12e784e48983e3bcdc6889dad&,在本例子中,有oauth_token。
使用金鑰通過HMAC-SHA1演算法簽名字元基串,生成簽名(先生成數字簽名,然後再用base64 encode):
pa7Fuh9GQnsPc+Lcn+Qu6G7LVEU=
最後把urlencode後的簽名作為oauth_signature的值,向連線發出請求:
curl –k "http://openapi.kuaipan.cn/1/fileops/create_folder?oauth_version=1.0&oauth_signature=pa7Fuh9GQnsPc%2BLcn %2BQu6G7LVEU%3D&oauth_token=fa361a4a1dfc4a739869020e586582f9&oauth_signature_method=HMAC-SHA1&oauth_nonc e=58456623&oauth_timestamp=1328881571&path=%2Ftest%40kingsoft.com&oauth_consumer_key=79a7578ce6cf4a6fa27 dbf30c6324df4&root=kuaipan"
相關推薦
關於Oauth1.0認證及認證後呼叫API的方法
假設已經拿到以下 consumer_key: { 'consumer_key': '79a7578ce6cf4a6fa27dbf30c6324df4', 'consumer_secret': 'c7ed87c12e784e48983e3b
Sqlserver呼叫api 方法及示例
雖然使用sqlserver去呼叫服務介面的情況比較少,但也可以去了解下對應的使用情況 一、首先要開啟元件的配置 按 Ctrl+C 複製程式碼 按 Ctrl+C 複製程式碼 二、呼叫webservice 1、介面資訊獲取 呼叫webservi
React - 元件的生命週期詳解(及各階段呼叫的方法)
轉自http://www.hangge.com/blog/cache/detail_1473.html React - 元件的生命週期詳解(及各階段呼叫的方法) 2016-12-22釋出:hangge閱讀:2699 ReactJS 的核心思想是元件化,即按功能封裝成一個一個的元
WKWebView的canGoBack屬性設定後,呼叫goBack方法無效
在viewDidLoad方法裡面呼叫了jct_addWebView - (void)jct_addWebView{ JCTWebView *webView = [[JCTWebView al
Android中呼叫js方法及js中呼叫本地方法
Android中內建了WebKit模組,而該模組的Java層檢視類就是WebView,所有需要使用Web瀏覽器功能的Android都需要建立該檢視類物件顯示和處理請求的網路資源。目前WebKit支援Http、Https、Ftp和JavaScript請求。下面我們重點看一下如
import android.support.v4.app.Fragment後呼叫add方法報錯
首先需要匯入android-support-v4.jar包,方法見下: 進入Android\sdk\extras\android\support\v4,將其中的android-support-v4.jar複製,拷貝到android專案的app/libs下,右鍵點選jar檔案
redis-5.0 cluster帶認證及客戶端連線
Redis在3.0版正式引入redis-cluster叢集這個特性。Redis叢集是一個提供在多個Redis間節點間共享資料的程式集。Redis叢集是一個分散式(distributed)、容錯(fault-tolerant)的Redis記憶體K/V服務,叢集可以使
redis-5.0 cluster帶騰訊分分彩出售認證及客戶端連線
Redis在3.0版騰訊分分彩出售 dsluntan.com Q:3393756370 VX:17061863513正式引入redis-cluster叢集這個特性。Redis叢集是一個提供在多個Redis間節點間共享資料的程式集。Redis叢集是一個分散式(distr
postMan5.0.2及postMan Interceptor chrome外掛離線安裝,(實現登入認證)
postMan5.0.2及postMan Interceptor離線安裝,(實現登入認證) 這是一種直接通過打包已經安裝的擴充套件程式的方式,進行離線安裝 首先下載postMan及postMan Interceptor,解壓縮到你喜歡的位置。 https://do
Redis 5.0 Cluster叢集帶認證及客戶端連線
Redis在3.0版正式引入redis-cluster叢集這個特性。Redis叢集是一個提供在多個Redis間節點間共享資料的程式集。Redis叢集是一個分散式(distributed)、容錯(fault-tolerant)的Redis記憶體K/V服務,叢集可以使用的功能是普通單機Redis所能使用的功能的一
033.Kubernetes叢集安全-API Server認證及授權
一 Kubernetes叢集安全 1.1 安全機制 Kubernetes通過一系列機制來實現叢集的安全控制,其中包括API Server的認證授權、准入控制機制及保護敏感資訊的Secret機制等。叢集的安全性主要有如下目標: 保證容器與其所在宿主機的隔離。 限制容器給基礎設施或其他容器帶來的干擾。 最小許
Restful安全認證及權限的解決方案
解決 三方登錄 cati rest oiv 保存 無限 some 一次 一、Restful安全認證常用方式 1.Session+Cookie 傳統的Web認證方式。需要解決會話共享及跨域請求的問題。 2.JWT JSON Web Token。 3.OAuth 支持兩方和三方
Https、OpenSSL自建CA證書及簽發證書、nginx單向認證、雙向認證及使用Java訪問
1.5 image echo create etc 保存 config openss ima 0.環境 安裝了nginx,安裝了openssl 1.配置和腳本 先創建一個demo目錄(位置自己選擇,我選擇建在nginx的目錄下): mkdir /etc/nginx/
java及spark2.X連接mongodb3.X單機或集群的方法(帶認證及不帶認證)
連接 通過 ava 更新數據 ati out client data 插入數據 首先,我們明確的是訪問Mongos和訪問單機Mongod並沒有什麽區別。接下來的方法都是既可以訪問mongod又可以訪問Mongos的。 另外,讀作java寫作scala,反正大家都看得懂...
NET Core 2.0使用Cookie認證實現SSO單點登錄
訪問 mvc side mes all add set 1.0 png NET Core 2.0使用Cookie認證實現SSO單點登錄 之前寫了一個使用ASP.NET MVC實現SSO登錄的Demo,https://github.com/bidianqing/SSO.Sam
Spring Cloud雲架構 - SSO單點登錄之OAuth2.0登錄認證(1)
環境 博客 跳轉 baidu pid n) 直接 lan 信息 今天我們對OAuth2.0的整合方式做一下筆記,首先我從網上找了一些關於OAuth2.0的一些基礎知識點,幫助大家回顧一下知識點: 一、oauth中的角色 client:調用資源服務器API的應用 Oauth
Apsara Clouder專項技能認證:實現調用API接口 (筆記)
gpo 分享圖片 alt 技術分享 筆記 .com src div 認證 Apsara Clouder專項技能認證:實現調用API接口 (筆記)
apache用戶認證及域名跳轉、訪問日誌
20180529一、apache的用戶認證vim /usr/local/apache/conf/extra/httpd-vhosts.conf //把11.com那個虛擬主機編輯成如下內容<VirtualHost *:80>DocumentRoot "/data/wwwroot/www.
整合spring cloud雲架構 - SSO單點登錄之OAuth2.0登錄認證(1)
spring cloud Spring Boot config 之前寫了很多關於spring cloud的文章,今天我們對OAuth2.0的整合方式做一下筆記,首先我從網上找了一些關於OAuth2.0的一些基礎知識點,幫助大家回顧一下知識點: 一、oauth中的角色client:調用資源服務器AP
SSO單點登錄之OAuth2.0登錄認證(1)
ret fault authorize 雲架構 t權限 通過 方法 架構 不錯 之前寫了很多關於spring cloud的文章,今天我們對OAuth2.0的整合方式做一下筆記,首先我從網上找了一些關於OAuth2.0的一些基礎知識點,幫助大家回顧一下知識點: 一、oauth