查看完整版本: 如何獨立出權限系統
頁: [1]

ggnnyy 發表於 2017-8-28 05:04 PM

如何獨立出權限系統

各位大大好:
可否談一談如何將驗證及授權的系統獨立出來,他的流程應該是什麼樣?
例如:有兩個API網站A和B,他們的權限授權來源都是透過第三個API網站C拿到 token,可是這個token如何拿到A,B網站去要求服務?
<div></div>

我愛小笨蛋 發表於 2017-10-6 05:51 PM

如果你是像股票資訊這種資訊的話 A/B已經有C的授權 A/C就把C的資料抓到他們的資料庫裡然後就可以提供服務給其它人了

如果是及時性的(像GOOGLE快速登入) 那就是A/B將其它用戶輸入的資訊 透過A/B的 Token去取得資料 然後A/B再將結果拋回給其它人

你的需求不是很明確 所以提供這兩種方式給你參考

love88131496 發表於 2018-7-13 11:24 PM

本帖最後由 love88131496 於 2018-7-13 11:25 PM 編輯

現在回答已經晚了一年了>"<

這問題就是單純: A/B如何收妳給的TOKEN。
方法可能是透過URL GET/POST

當然,還有更複雜的,更白癡的情境:
例如,C所提供的TOKEN,還得在同一個SESSION內才有效。這種情況常常發生在微軟提供的服務,因為他假設所有人都是用IE,都會用同一個IE,來同時使用A和B網站。他覺得這樣安全性最高。
如果遇到這情況,死定,那表示A和B都必須透過SSO機制和C取得驗證。如果妳要自由的運用這個TOKEN,有一個簡單的情況來檢測妳要不要花時間: A和B是不是在同一個DOMAIN。99%不會,所以白搭。

回到樓主提的。既然A和B都表明是API網站,所以不可能會白癡到去跟這種C整合(同一個SESSION)。也就是說,他們應該都會提供一個界面,讓你傳TOKEN給他們。而他們只要向C去驗證這個TOKEN合不合法就好。所以驗證不是妳的事,是A和B要作的。妳只要跟據A和B要求的方式把妳向C取得的TOKEN給他們就好。

整個流程就很簡單。自己這邊,把登入程序獨立一塊(跟妳自己的系統驗證)。驗證過後,向C取得TOKEN(可能要向C發送識別資訊),這段也獨立一塊。然後把呼叫A和B這兩個API的部份,獨立寫妳自己的呼叫端CLASS(或者其他封裝方式),把TOKEN傳出封入在封裝內就好。
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]