三方社會化身份源
集成gitee第三方登錄
第三方登錄的原理
所謂第三方登錄,實質就是 OAuth 授權。用戶想要登錄 A 網站,A 網站讓用戶提供第三方網站的數據,證明自己的身份。獲取第三方網站的身份數據,就需要 OAuth 授權。
舉例來說,A 網站允許 Gitee 登錄,背后就是下面的流程。
- A 網站讓用戶跳轉到 Gitee。
- Gitee 要求用戶登錄,然后詢問"A 網站要求獲得 xx 權限,你是否同意?"
- 用戶同意,Gitee 就會重定向回 A 網站,同時發回一個授權碼。
- A 網站使用授權碼,向 Gitee 請求令牌。
- Gitee 返回令牌.
- A 網站使用令牌,向 Gitee 請求用戶數據。
gitee中創建應用
- 設置中點擊【第三方應用】
- 點擊【創建應用】
- 填寫信息,然后點擊【創建應用】
配置使用 Gitee 賬號認證登錄Grafana
要將Gitee作為Grafana的OAuth2提供程序,您需要在Grafana的配置文件(默認路徑為/etc/grafana/grafana.ini)中添加以下條目:
[auth.generic_oauth]
name = Gitee
enabled = true
allow_sign_up = true
client_id = YOUR_GITEE_CLIENT_ID
client_secret = YOUR_GITEE_CLIENT_SECRET
scopes = user_info
auth_url = https://gitee.com/oauth/authorize
token_url = https://gitee.com/oauth/token
api_url = https://gitee.com/api/v5/user
email_attribute_path = html_url
icon = google
請記住,將YOUR_GITEE_CLIENT_ID和YOUR_GITEE_CLIENT_SECRET替換為了在Gitee上注冊您的應用程序時獲得的值。
測試地址
BOXTRADE天啟量化平臺-Grafanahttp://mac.boxtrade.top:3000
注意
- 回調地址為Grafana工作區的連接地址加
/login/generic_oauth
后綴,例如http://[Grafana連接地址:端口號]/login/generic_oauth
。您可以在工作區信息頁面查看Grafana工作區的連接地址和端口號,更多信息,請參見創建Grafana工作區。
- scope表示權限范圍,有以下選項,請求時使用空格隔開
user_info projects pull_requests issues notes keys hook groups gists enterprises
參考
Gitee OAuth 文檔
如何對接Grafana實現第三方應用登錄_應用實時監控服務-阿里云幫助中心
集成gitee第三方登錄 - huihui_teresa - 博客園
Configure generic OAuth2 authentication | Grafana documentation
grafana 三方登錄圖標icon代碼邏輯
1、登錄圖標的位置 grafana/public/img/icons/unicons/ 2、代碼 public/app/core/components/Login/LoginServiceButtons.tsx https://github.com/grafana/grafana/blob/8ec4c1bdc87c43fe43e6bc56db924a9107edf137/public/app/core/components/Login/LoginServiceButtons.tsx#L72 3、默認配置參考 https://github.com/grafana/grafana/blob/8ec4c1bdc87c43fe43e6bc56db924a9107edf137/conf/defaults.ini#L732 4、gitee圖標參考 https://gitee.com/about_u