由於某些原因 有時候需要本地生成token
原文 位址
首先我們需要用到三個引數scope
、accesskey
和secretkey
scope
其實就是資源存放的資料夾名字,例如下圖的cmxj
accesskey
和secretkey
在個人面板 -> 個人中心 -> 金鑰管理裡面就能看到
接下來就可以建立token了,首先我們將上傳策略中的scope
和deadline
序列化成json格式,裡面的livetime
則是token的有效時間,可以以天為單位
nsmutabledictionary *authinfo = [nsmutabledictionary dictionary];再對json序列化後的上傳策略進行url安全的base64編碼[authinfo setobject:self.scope forkey:@"scope"];
[authinfo
setobject:[nsnumber numberwithlong:[[nsdate date] timeintervalsince1970] + self.livetime * 24 * 3600]
forkey:@"deadline"];
nsdata *jsondata =
[nsjsonserialization datawithjsonobject:authinfo options:nsjsonwritingprettyprinted error:nil];
nsstring *encodedstring = [self urlsafebase64encode:jsondata];
qn_gtm_base64
是七牛sdk提供給使用者用來處理base64和websafebase64編碼的類,然後將裡面的+
和/
替換成_
- (nsstring *)urlsafebase64encode:(nsdata *)text然後用secretkey對編碼後的上傳策略進行hmac-sha1加密,並且做安全的base64編碼,得到encoded_signed
nsstring *encodedsignedstring = [self hmacsha1:self.secretkey text:encodedstring];
- (nsstring *)hmacsha1:(nsstring *)key text:(nsstring *)text最後將accesskey、encodedsignedstring和encodedstring拼接,中間用:分開,得到的就是上傳的token
nsstring *token =[nsstring stringwithformat:@"%@:%@:%@", self.accesskey, encodedsignedstring, encodedstring];
七牛雲獲取token介面
1.七牛雲上傳原理 2.七牛雲獲取token介面 class qntokenview apiview def get self,request from qiniu import auth 需要填寫你的 access key 和 secret key access key zuso05gqft9a4...
什麼是token及怎樣生成token
token是服務端生成的一串字串,以作客戶端進行請求的令牌,當第一次登陸後,伺服器生成乙個token便將此token返回給客戶端,以後客戶端只要帶上這個token前來請求資料即可,無需再次帶上使用者名稱和密碼 基於token的身份驗證 token的優勢 1.無狀態.可擴充套件 在客戶端儲存的toke...
token 的生成雜談
很多時候我們需要用 token 來作為一些標識,比如 乙個使用者登入後的認證標識.v 1 自己定義的 需要hash 的value 值 key mt rand 這裡用 隨機串作為key hash md5 key v mt rand time echo hash 執行結果 b63426a38f86b72...