Force to fix refresh token param to always use refresh=0 temerarily
Created by: Anonymous
What
在老司機專案,新 user (完全沒登入過老司機或股市 talk)使用老司機 api /driver/api/v1/member/cognitoTokenAndRegister
拿回來的 token 打其他 api 會回 401
Why
造成原因和 backend 對換 cognito token 的邏輯調整有關
目前 anue-fe-sdk v0.9.6 的登入流程如下:
cnyes 系列產品和老司機的 fe 登入的邏輯相同,差別只在 api endpoint 不同:
cnyes | 老司機 | |
---|---|---|
getCognitoToken | /api/v2/user/cognitoOpenIdOrRegister |
/driver/api/v1/member/cognitoTokenAndRegister |
getProfile | /api/v2/user/profile |
/driver/api/v1/me |
在 anue-fe-sdk v0.9.6 設計當下
cnyes 的 getCognitoToken api 的參數 refresh
,在原本設計時的版本中,新 user 應該帶 refresh=0 來讓 be 多一步驟檢查資料庫是否要建立新的 user 資料,refresh=1 則會略過檢查和新增的步驟直接取得 cognitoToken。
因此 anue-fe-sdk 會如上面流程圖,會直接帶 refresh=1,如果是被回錯誤訊息擋下才判斷是新 user 而重帶 refresh=0
老司機 getCognitoToken api 參數邏輯基本相同,但 BE 會同時做兩件事:拿相同參數打 cnyes api 來建立 cnyes user 資料、也會在老司機資料庫建新資料。
現在的情況
經過改版,現在版本 cnyes 的 getCognitoToken api 不論帶 refresh 0 or 1 都會幫忙把判斷是否為新 user 這段做掉,妥妥回 200
但老司機 getCognitoToken api 在老司機中的服務沒有跟上。
透過老司機 getCognitoToken api,新 user 使用 refresh=1 時,會在 cnyes 資料庫加新資料,但老司機資料庫不會。所以才會在之後打其他老司機 api 時 gg QQ
How
線上版新 user 不能登入有點悲劇 QQQQ,先讓 user 拿 token 通通帶 refresh = 0,雖然登入速度可能稍慢但至少可以登入
再用爭取時間找判斷登入狀態的方法 QQQQ