Google Sign-in with OAuth 2.0
前言:
由於目前專案是以 Embedded System 為主,比較少有機會接入第三方 api 的機會,所以這次 side project 就以 Google Sign-in for Web application with Go 的流程當作練習。由於網路上可以找到很多範例,所以在以下文章中會側重在原理 + 為什麼要這樣做,希望除了寫 code 之外,還能建立起基本概念。
Oauth 2.0
要實作 Google Sign-in 流程之前,不免要來簡單提到 Oauth 2.0。 OAuth 是一個用於授權認證的標準協議(RFC 6749),與一般網站常用到的個人帳號驗證機制不同的地方是,OAuth 強調第三方應用程式授權機制,所以它的內容有明確定義出各角色定義,包含:
- resource owner
- resource server
- client
- authorization server
以這次要實作的場景為例,使用者要透過 Google 帳號來登入我的網站,這裡 resource owner 是指使用者,client 是指我的網站,resource server 和 authorization server 則都是指 Google 所提供的服務。