什麼是OAuth協議?
Oauth是一個授權協議,讓用戶在不將服務提供商的用戶名密碼交給第三方應用的情況下,讓第三方應用有權限訪問用戶在服務提供商中存在的一些資源,由於在這個過程中並沒有提供用戶名、密碼給第三方應用,進而避免了一下三個問題:
1. 第三方應用可以訪問用戶在服務提供商上的所有信息
2. 用戶只有修改密碼,纔可以取回授權
3. 密碼泄露的可能性大大提高
舉個例子:登錄CSDN可以使用QQ第三方登錄,那麼CSDN需要獲取你在QQ上的基本信息(方然不包括登錄名和密碼),那麼在這個動作中,服務提供商就是QQ,因爲用戶的基本信息在QQ上了,第三方應用就是CSDN,它需要再你同意授權的情況下去向QQ申請你的基本信息;
OAuth流程
1. 基本流程
介紹:在第三方應用獲得用戶同意後,會向服務提供商的認證服務器請求token(授權令牌),獲得token後,可以向服務提供商的資源服務器發送帶有token的請求,獲取用戶在服務提供商上的信息。
2. 根據用戶同意授權的不同,可以分爲四種模式
2.1. 授權碼模式(最安全、最普遍的)
該模式下,用戶的授權是在服務提供商的認證服務器上完成的;同時,第三方應用需要在獲取授權碼之後,根據授權碼來請求授權令牌。
2.2. 密碼模式
2.3. 簡單模式
2.4.