BBAuth驗證撰寫心得

  1. 申請YDN的使用權限帳密,假設我們的endpoint為/xxx.jsp
  2. 產生連結到Yahoo的URL
  3. 產生原則為,https://api.login.yahoo.com/WSLogin/V1/wslogin?appid=帳號&appdata=攜帶資料&send_userhash=1&ts=系統秒數&sig=簽名碼
    說明:send_userhash=1代表要求yahoo回傳一個獨特不重複的userhash給我們,此參數可省略,
    sig簽名碼產生規則:使用MD5編碼下列字串,/WSLogin/V1/wslogin?appid=帳號&appdata=攜帶資料&send_userhash=1&ts= 系統秒數+密碼
    若是不回傳userhash,則簽名碼的&send_userhash=1也不需加入
  4. 讓使用者Link到我們產生出來的Yahoo URL
  5. 使用者自行到yahoo認證,並且按確認,Yahoo將會把控制權交回,回傳帶有參數的QueryString給我們程式,有ts,userhash(有設定send_userhash=1才有),appdata,sig,token
    範 例:http://com.tw/xxx.jsp?appid=由Yahoo回傳&token=由Yahoo回傳&appdata=由 Yahoo回傳&userhash=由Yahoo回傳&ts=由Yahoo回傳&sig=由Yahoo回傳
  6. 驗證yahoo回傳的簽名碼
    sig簽名碼的長度必須為32
    ts減去現在系統秒數必須小於600秒
    產生的驗證簽名碼,使用MD5編碼下列字串,/xxx.jsp?appid=由Yahoo回傳&token=由Yahoo回傳&appdata=由Yahoo回傳&userhash=由Yahoo回傳&ts=現在系統秒數+密碼
  7. 如果驗證sig碼與Yahoo回傳的sig相同,代表此次的BBAuth成功,大功告成


留言