Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
A anue-fe-sdk
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Jira
    • Jira
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • share
  • anue-fe-sdk
  • Merge requests
  • !17

Closed
Created Jun 17, 2019 by jameslu@jamesluOwner
  • Report abuse
Report abuse

Force to fix refresh token param to always use refresh=0 temerarily

  • Overview 0
  • Commits 1
  • Changes 1

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

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: refresh-token-param