OAuth1.0中的access_token過期時間通常很長,安全性差。於是OAuth2.0推出了refresh_token。
OAuth2.0中,客戶端用賬戶名,密碼經過一定方式(比如先請求code),獲得ACCESS_TOKEN,expire_in與refresh_token。
然后在expire_in到期的時候,通過refresh_token獲得新的access_token,expire_in,與refresh_token。
refresh_token也有過期時間,當refresh_token過期的時候,則需要用戶重新授權登錄。
注意:
refresh_token只有在用戶長期沒有請求的情況下才會過期,因為每次請求token都會獲得新的值。
那么這里有個風險:基本上,黑客一旦獲得用戶的access_token與refresh_token,而且用戶之后的一段時間都沒有更新,或者不再用這個app了,那么黑客就可以一直以用戶的身份進行一些訪問。
當然,如果用戶在別的地方再次通過用戶名密碼登錄的話,則原來的access_token與refresh_token自然失效。
進而想到,為了防止一次泄露,造成一段時間內的賬戶不安全,app客戶端應該在后台自動定時用refresh_token請求新的token值。這樣,token及時變更,舊token有效時間減少,安全性也可得到一定的提高。
摘自:
http://blog.csdn.net/dskwe/article/details/50493616
參考文章:
http://blog.csdn.net/wenlei_zhouwl/article/details/7256082
http://www.cnblogs.com/dudu/p/oauth-refresh-token.html