[問題] Where to store access token in OAuth2?

看板Web_Design作者 (南洋大兜蟲)時間12年前 (2012/03/06 14:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
我要作一個以 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)
文章代碼(AID): #1FLRL6DM (Web_Design)
文章代碼(AID): #1FLRL6DM (Web_Design)