/

實作 facebook OAuth2 登入機制

前言

前幾週看到 developer-roadmap 中的後端能力技能樹,看到了 OAuth2 這個聽過多次但是沒有實際實作過的驗證機制。於是開啟了自己實作的想法。

完整的做法放在 oAuth-fb-tutorial 中,以下紀錄了如何配置以及申請 token。

setup

  1. 首先,先在 facebook for developers 註冊應用程式

  2. 在此專案目錄下建立 .env, 並且將你的資料填入

1
2
3
4
facebook_client_id=
facebook_secret_id=
redirect_uri=
facebook_console_id=

facebook_client_id 以及 facebook_secret_id 在註冊完的應用程式設定中可以找到

1

分別為 應用程式編號 以及 應用程式密鑰

redirect_uri 則填入 ip:3000/facebook/callback ,這邊要注意的是臉書不允許用 http,所以無法只接用 localhost, 這邊推薦大家用 ngrok 來將一個外網網址映射到 localhost:3000/callback/facebook

2

例如我的 ngrok 幫我映射的 URL 為 https://7bfbb3ed.ngrok.io

redirect_uri 就填入 https://7bfbb3ed.ngrok.io/facebook/callback

除了在 .env 填入以外, 也要記得在剛才應用程式設定中填入 有效的 OAuth 重新導向 URI 之中

3

最後一個 facebook_console_id 則是自己的 facebook 帳戶 token

取得方式為:

curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={id}&client_secret={id}&grant_type=client_credentials"

client_idclient_secret 與 .env 的前兩個欄位相同

  1. npm i
    (安裝所需套件)

  2. npm run server
    (此時瀏覽 localhost:3000 即可)

demo

4