OAuth 2.0 state使用 === --- > [color=#009dc4] > ## 前言 > > 照理說應該要先從OAuth開始講解,但那實在是要寫的跟要整理的實在太多, > 所以先從最近有用到的一些小技巧開始講解,後面再慢慢補前面的(挖坑中....) --- > [color=#ff0000] > ## 情境 > > 目前遇到比較常用到OAuth裡的state,都是自己的服務去介接別人的服務,並且需要帶一些會用到的參數來做到更漂亮的情境時,比較常會使用state >:::info >例如: >A站為別人的主站 >B站為自己的主站 >當B站去介接A站的OAuth並且當使用者從A站=>A站OAuth=>B站,B站會針對A站目前會員的條件(例如身份、等級之類的),跳過一些步驟或呈現不同的畫面 > >::: >通常不介接OAuth的話大部分應該都是待在網址傳過去,但現在多了一段OAuth的過程,相關參數要怎麼帶過去呢?這時候就會用到state這個參數 --- >[color=green] >## 解決方案 >網路上很多範例跟教學,state通常都只有一個參數,但在實際開放的情境上,往往所需的參數不只一個....但轉個念想其實很簡單解決 > >關鍵語法: >````javascript >JSON.stringify(); // 保險一點的話需要encodeURIComponent包起來,要不然有機會爆掉... >JSON.parse(); >```` > >對,其實就只要請A站把你所需的資料包成JSON字串丟到state給B站解析就可以。 --- >[color=#90F1EF] > ## 結論 > 聽起來很簡單,但實際做專案的時候,遇到蠻多合作夥伴,所以才想記錄下來。
{"metaMigratedAt":"2023-06-16T05:46:09.391Z","metaMigratedFrom":"YAML","title":"OAuth 2.0 state使用","breaks":true,"contributors":"[{\"id\":\"4242844b-b5b4-429d-9469-dd121c8d3e84\",\"add\":807,\"del\":28}]"}
Expand menu