[問題] Where to store access token in OAuth2?
我要作一個以 FB 登入的網站,但為了不用每次使用我的 app 都要登入一次
所以我必須將 access token 存起來,我在實做前想到兩組解,不知道哪個比較好
希望前輩們可以給予指點^^"
感激不盡~ =)
1. 存在 session
a. Web server 取得 access token(詳細步驟就省略了,FB 官網上有)
b. 將 access token 儲存在 session
c. 下次收到 request 時,查看 session 是否有 access token
1. 有 -> 表示已經登入,直接使用該 access token
2. 無 -> 尚未登入,重導頁面重新驗證,取得 access token(重複 a)
2. 存在 database [配合 session]
a. 建立一個 database table,有兩個 columns:uid 和 access_token
b. Web server 取得 access token
c. 用 access token 跟 FB 要 user 的 UID 及其他需要的資料
d. 去 database 找是否有這個 UID
1. 如果 UID 不存在 -> 新增一個使用者在 database,並將 uid 存入 session
2. 如果 UID 存在 -> 更新 access_token column
e. 下次收到 request 時,查看 session 是否有 uid 辨認是哪個使用者
1. 是 -> 表示已經登入,直接用 uid 去 database 撈 access token
2. 否 -> 表示沒有登入,重導頁面重新驗證,取得 access token(重複 b)
問題:
1. 兩者利弊何在?
2. 使用 database 的方式,優點在於可以增加一些 user 的 meta data(即新增
額外的 column),而我猜許多遊戲正是這麼做的沒錯吧?
3. 如果我只是單純要做到登入而已(不想新增 user table),是否用 session 即可?
會不會有什麼隱憂呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.246.1
※ 編輯: tonytonyjan 來自: 140.113.246.1 (03/06 15:01)
討論串 (同標題文章)