
OAuth 是什麼?
HamCQ 社區提供 OAuth 授權登入的方式,讓使用者能夠透過在 HamCQ 中開啟的網頁取得成員的身分資訊,從而避免登入的步驟。
OAuth2 的設計理念,是讓使用者可以在不告知第三方自己的帳號密碼的情況下,透過授權的方式,讓第三方服務能夠取得自己的資源資訊。
我們為何提供 OAuth?
這要歸功於社群的發展,越來越多的使用者透過社群討論、換卡、驗證等方式進行交流。我們常用的 QQ、微信、淘寶也為第三方應用提供 OAuth 授權登入能力,這是一個開放標準,也是目前最流行的授權機制。
使用 OAtuth 主要能帶來以下優點:
- 節省第三方開發者的時間,避免註冊流程,快速實現業務邏輯。
- 充分發揮社區的職責,創造更多有意義的功能。
為了規範流程,保障使用者合法權益,目前社群的 OAuth 僅提供網站接入、僅提供 `authorization_code`、僅允許顯示授權。
申請方式
HamCQ 社區的 OAuth2.0 總體處理流程如下:
步驟 1:申請加入,取得 `client_id` 和 `client_secret`。
步驟二:開發應用程式,並設定協作帳號進行測試連動。
步驟 3:放置「HamCQ」社群的登入按鈕。
步驟四:透過使用者登入驗證與授權,取得 Access Token。
步驟 5:透過存取權杖取得使用者 ID。
步驟 6:呼叫 OpenAPI 接口,以請求訪問已授權的使用者資源。
將以下訊息發送至 emin@hamcq.cn ,我們將對開發者資訊和網站狀況進行審核:
1、網站名稱
2、網站首頁連結
3、申請業務場景(不少於 50 字的說明)
4、網站 Logo (不少於 64x64 PX)
5、網站介紹(10 字內)
6、域名回撥地址(嚴格對應)
7、域名 ICP 註冊資訊、公安註冊資訊
8、網站負責人資訊(姓名、手機號碼、身分證字號)
審核通過後,相關資訊會一併透過郵件寄送。
介面
授權
/oauth/授權
範例:
取得:https://example.com/oauth/authorize?client\_id=123456&response\_type=code&redirect\_uri=https://user.example.com/oauth/callback&範圍= user.read&狀態=123456
憑證
/oauth/token
| 參數 | 說明 | 必須填寫 | 預設值 | 範例 |
| client_id | 應用 ID | 是 | 沒有 | 123456 |
| client_secret | 應用金鑰 | 是 | 沒有 | 123456 |
| grant_type | 授權類型 | 是 | 沒有 | 授權碼或重新取得的驗證碼 |
| code | 授權碼 | 當授權類型為 `authorization_code` 時,必須填寫。 | 沒有 | 123456 |
| refresh_token | 重新取得的驗證碼 | 授權類型為「refresh\_token」時,必須填寫。 | 沒有 | 123456 |
| redirect_uri | 重新導向 URI | 當授權類型為 `authorization_code` 時,必須填寫。 | 應用回調位址 | https://example.com/oauth/callback |
範例:
發送請求至:https://example.com/oauth/token
請求內容:client\_id=123456&client\_secret=123456&grant\_type=授權碼&代碼=123456&redirect\_uri=https://example.com/oauth/callback
資源 (使用者)
/api/user
| 參數 | 說明 | 必須填寫 | 預設值 | 範例 |
| access_token | 訪問權杖 | 是 | 沒有 | 123456 |
範例:
取得:https://example.com/api/user?access\_token=123456
返回使用者資訊
{
"id": 1,
"使用者名稱": "BG5UWQ",
"頭像網址": "",
"電子郵件": "",
"是否已確認電子郵件": 1,
...
}