zouber / Fanshop

1 stars 0 forks source link

[報錯] 有一個部落客無法順利取得 blog_brandpage 管理者權限 #466

Closed shockhuang closed 10 years ago

shockhuang commented 10 years ago

說明:已在 fanshop 廠商管理頁設定好權限,也請她註冊過 fanshop,但無法順利出現 fanshop 首頁的「網站管理」選單,直接連結上架管理頁網址也會因為權限不足而被導往首頁。 2014-08-13 3 33 35

部落客:https://www.facebook.com/zhan.ya.10 user_id:100000315422782 vender_id:663907927009786 brand_name:AliceCatherine

zouber commented 10 years ago

花了一些時間去 trace code, 檢查實作的方式 但還是檢查不出來程式到底出錯在哪 我也模擬過他的狀態, 方法如下:

  1. 把我從超級管理員刪除
  2. 進入 http://www.fanshop.tw/product_admin/?pid=663907927009786 此時會被權限系統擋下來
  3. 在這頁(http://www.fanshop.tw/vendor_admin)加上我的身份到對應的 vendor(vid= 663907927009786), 儲存後, 就不會再被擋下來了

所以應該不是程式端的問題, 你需要確定的是他用的身份真的是 uid = 100000315422782 的帳號 有時候資訊化程度比較低的 user 會不太清楚他現在是用粉絲團帳號 還是 個人帳號登入 測試的方法就是請他在那頁開 console 然後輸入 uid 看是否跑出來的是 "100000315422782" 另外就是要釐清他註冊的程序, 是否有充分授權, 有沒有遇到異樣, 因為我在 db 裏面並沒有看到 uid = 100000315422782 的 user 資料, 如果沒有授權我們 FB app 的用戶的確會被導到首頁

@shockhuang

zouber commented 10 years ago

已和 @shockhuang 說明,請持續追蹤此 user,可能他之前沒有授權 fanshop fb app 才會導致沒有成功註冊,要到FB個人設定頁去查看

shockhuang commented 10 years ago

對於這個 user 昨天我做了兩件事,

  1. 在他個人 fb 的應用程式授權頁面把 fanshop 砍掉,並連結首次訂閱頁重新註冊完成,到 db 查依然沒有 user 資料。
  2. 承(1)無效後,再砍掉一次 fb 授權,以未註冊的身份在七見櫻堂的商品頁購買商品, 接著彈出註冊請求視窗,以 fb 授權登入並註冊完成,然後成功送出訂單, 然後到 db 查依然沒有該 user 資料。 訂單編號:#5765 訂單網址:http://www.fanshop.tw/vendor_paid_order/?vid=nksdchoco user fb:https://www.facebook.com/zhan.ya.10 user fb_id:100000315422782
zouber commented 10 years ago

2014-08-19 4 17 45

非常神奇的,他的 FB API 竟然不會回傳 id 導致 user 新增不進去

zouber commented 10 years ago

Try to solve(Rev. 1967) Please try agine

shockhuang commented 10 years ago

剛又請她用首次訂閱頁註冊了一次仍然失敗。

zouber commented 10 years ago

偵錯記錄:

他在訂單裏頭的 uid 是:788720321148475 而用 graph api 直接查他的 uid 是:100000315422782

用前者 query 到的用戶資料:

{
   "id": "788720321148475",
   "first_name": "\u96c5\u96c5",
   "gender": "female",
   "last_name": "\u8a79",
   "locale": "zh_TW",
   "name": "\u8a79\u96c5\u96c5",
   "username": "zhan.ya.10"
}
後者 query 到的:
{
   "id": "100000315422782",
   "first_name": "\u96c5\u96c5",
   "gender": "female",
   "last_name": "\u8a79",
   "locale": "zh_TW",
   "name": "\u8a79\u96c5\u96c5",
   "username": "zhan.ya.10"
}

也就是說其實他跑那麼多次註冊都沒成功的原因是 這個 user 早就已經存在了 而他實際上在站上用的 id 是788720321148475,所以我們才會不斷加他但都沒效果 因為 uid 根本錯了,會造成這樣的現象似乎跟 FB 的保護政策有關,我讀了文件,大意是說每個 FB app 拿到的 user id 可能會是不同的(uid 也有"領域限制"),所以我們以前用直接用網址去 query uid 的方式,拿到的 uid 不見得是該user 真正的 id,只是說對大部份的 user 而言兩者是相同的,但據說導入 fb api 2.0 後隱私政策會更嚴格,所以一旦使用者有不同意授權一次,你拿到的 uid 就不會是他本人最原始的 uid,因為事情很多,先研究到這,往後有再遇到再說,我已經把他加入 vendor 管理員了,請他再試試吧!不用再註冊了

參考文章: https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids http://developer.linkedin.com/forum/different-id-same-user-using-oauth

zouber commented 10 years ago

請 @shockhuang 幫我確認一下,如果運行正常麻煩先關掉此 issue

shockhuang commented 10 years ago

確認排除,close