天天看點

新浪微網誌登入過程

下面簡單介紹新浪微網誌的登入 過程:

在登入之前我們需要先從新浪伺服器擷取兩個變量:servertime,nonce。其中servertime中新浪的伺服器時間,nonce是一 個随機生成的字元串。擷取的需要通過這樣一個網絡接口:http://login.sina.com.cn/sso/prelogin.php?entry=miniblog&callback=sinaSSOController.preloginCallBack&user="+username+"&client=ssologin.js(v1.3.12)

其中username是你的使用者名。

擷取到我們需要的内容後,接下來就是加密的過程了。加密使用的是通用的SHA1加密 算法:

  • 把密碼進行一次SHA1加密,結果再進行一次SHA1加密
  • 把經過兩次SHA1加密的結果附上servertime,nonce再進行一次SHA1加密
  • 加密的結果作為登入密碼

登入位址沒有變,仍使用:http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.12)

但參數要複雜一點了:

service:選擇服務,我們這裡使用的新浪微網誌:miniblog

client:ssologin.js%28v1.3.12%29

entry:miniblog

encoding:utf-8

gateway:1

savestate:0

useticket:1,這裡使用到了登入票據。

username:你的使用者名

servertime:上步得到的伺服器時間

nonce:上步得到的随機字元串

pwencode:wsse(沒整明白是個什麼東西,不過從來不變)

password:加密後的密碼

url:一個回調位址

returntype:META(使用中沒有發生變化)

ssosimplelogin:1 example: http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.12)&service:miniblog&client:ssologin.js%28v1.3.12%29&entry:miniblog&encoding:utf- 8&gateway:1&savestate:0&useticket:1&username: 使用者 名&servertime:1308647606&nonce:L8QJHE&pwencode:wsse&password:f435c677294851d13794359145e6f96826c1 c3d2&url:http://www.baidu.com&returntype:META&ssosimplelogin:1