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 serverauthorization server 則都是指 Google 所提供的服務。

Go Fundamental - Array

前言

最近在學 Go,而之前有一些 C 的基礎,因此在學到 Go 的 Array 時,發現它和 C 的 Array 差異性蠻大的,所以特別記錄下來。

Array

Go

1
students := [3]string{"student1", "student2", "student3"}

C

1
char *students[3] = {"student1", "student2", "student3"}

Go’s arrays are values.

首先,最大的不同點是: Go 的 Array 是一個 Value,也就是 students 這個 Variable 就代表整個 Array 。反之, C 在宣告 Array 後, students 是代表指向 Array 第一個 element 的 pointer,而不是整個 Array。