20200814_jeffrey - silenceuncrio/diary GitHub Wiki
0900
禮拜四拜託 leo 的 cgi 已經好囉
http://192.168.0.95:8000/login?current_session={}
response: {cid: "proscend", level: "super_super", gid: []}
試著套用 How to restrict access to routes in react-router? 讓 isms 程式架構更加俐落
感覺這參考資料有點過時了
看一下官方範例 Redirects (Auth)
這一篇 [React] 在 React Router 4 中建立具有權限檢核的 Private Route 組件 也不錯
不過目前 isms 已經使用了 react-router-config
要想使用 authentication 可以參考 Protecting a route with react-router-config? #4962
該 issue 似乎沒有討論出一個結論
但給出了一個思路
1000
RD meeting
1430
參考 Protecting a route with react-router-config? #4962
該 issue 討論串 - gorkalaucirica commented on 27 Mar 2018
已經提出了一個具體的解決方式
{
{
path: "/restricted-area",
render: (props) => isUserLoggedIn() ? <RestrictedArea/> : <Redirect to="/login"/>
},
{
path: "/login",
component: Login
}
}
可以來好好 refactoring 一下了
對於 isUserLoggedIn()
這個 api
我想要有個跟 auth 相關的存放處然後做類似以下的使用
- auth.isAuthed()
- 是否已經 authenticated 了
- auth.name
- 就是 sign in 的 name, 目前是 email 格式
- auth.level
- sign in 的 user 的層級 - 目前有 5 種 由高至低為
- super_super
- super
- admin
- set
- get
- sign in 的 user 的層級 - 目前有 5 種 由高至低為
不同的 level 做不一樣的事情具體要在 render 出的 來實現
auth.isAuthed() 把守第一關
還沒 sign in 的話就 redirect 到 sign in page
這樣一來我每個 page 的 main component 都可以不用管要不要 redirect 這件事了
如果一個 page 閒置太久的話 會導致下一次的 cgi 呼叫得到 401 的回應
如果每個 cgi return 我都需要據判斷是否為 401 的話真的很醜
目前還需要思考怎麼來 refactoring
- 也許我可以把 fetch 這個動作包成一個可以被 render 的 component - 就像 <Redirect 一樣>
1645
fetch 似乎就有 redirect 可以用