1、什麼是OAuth協議
OAuth(開放受權)是一個開放標準。
容許第三方網站在用戶受權的前提下訪問在用戶在服務商那裏存儲的各類信息。
而這種受權無需將用戶提供用戶名和密碼提供給該第三方網站。
OAuth容許用戶提供一個令牌給第三方網站,一個令牌對應一個特定的第三方網站,同時該令牌只能在特定的時間內訪問特定的資源。
2、OAuth的原理和受權流程
OAuth的認證和受權的過程當中涉及的三方包括:
服務商:用戶使用服務的提供方,通常用來存消息、儲照片、視頻、聯繫人、文件等(好比Twitter、Sina微波等)。
用 戶:服務商的用戶
第三方:一般是網站,該網站想要訪問用戶存儲在服務商那裏的信息。
好比某個提供照片打印服務的網站,用戶想在那裏打印本身存在服務商那裏的網絡相冊。
在認證過程以前,第三方須要先向服務商申請第三方服務的惟一標識。
OAuth認證和受權的過程以下:
一、用戶訪問第三方網站網站,想對用戶存放在服務商的某些資源進行操做。
二、第三方網站向服務商請求一個臨時令牌。
三、服務商驗證第三方網站的身份後,授予一個臨時令牌。
四、第三方網站得到臨時令牌後,將用戶導向至服務商的受權頁面請求用戶受權,而後這個過程當中將臨時令牌和第三方網站的返回地址發送給服務商。
五、用戶在服務商的受權頁面上輸入本身的用戶名和密碼,受權第三方網站訪問所相應的資源。
六、受權成功後,服務商將用戶導向第三方網站的返回地址。
七、第三方網站根據臨時令牌從服務商那裏獲取訪問令牌。
八、服務商根據令牌和用戶的受權狀況授予第三方網站訪問令牌。
九、第三方網站使用獲取到的訪問令牌訪問存放在服務商的對應的用戶資源