2016-11-07 142 views
0

Plaid Link API documentation指出,一個成功的格紋鏈接的結果返回具有以下屬性的public_token格紋訪問令牌是祕密嗎?

一旦用戶通過格子鏈接成功onboarded,該模塊將 提供public_token。這與典型的格式API 請求不同,後者返回access_token。

是安全的應用程序或瀏覽器暴露

不能用於檢索帳戶和路由的數字(AUTH)或事務(連接)直接

可用於通過ACCESS_TOKEN格子交換 /exchange_token端點。

推測,這與access_token相反,這意味着access_token是一個祕密。但是,據我所知,every Plaid endpoint需要access_token還需要客戶端ID和secret值。

假設secret實際上是保密的,揭露訪問令牌在理論上是安全的嗎?如果不是,我錯過了什麼?如果是這樣,公衆令牌有什麼意義?

回答

1

你的假設是正確的,access_token應該保密。

公開access_token的唯一原因是向用戶顯示該信息(沒有理由這樣做),或者爲客戶端提供信息以便稍後將其發回(例如使用OAuth令牌認證)。

但是,如果您公開access_token,這意味着您的API期望用戶在請求信息時發送自己的訪問令牌。您的API信任該用戶輸入。如果用戶訪問另一個用戶的access_token,他們可以將其發送到您的API,並訪問另一個用戶的帳戶。

要防範這種未經授權的訪問,您需要跟蹤哪個用戶有權訪問哪些令牌,並且您必須驗證該請求以確保沒有未經授權的訪問。

而在這一點上,你需要問自己,爲什麼首先暴露access_token?客戶ID是公開信息,所以你依靠的事實是你的secret將不會公開。如果您的祕密曾暴露過您的access_tokens已被視爲公開,那麼所有用戶的所有銀行信息都將被公開。

爲確保您的用戶數據保持儘可能安全,絕不應將access_token交給最終用戶。

+0

我不再在Square工作了,所以我不能訪問我關於這個主題的電子郵件,但我記得得到格子工程師的完全相反的回答,所以我很想知道混淆的地方在哪裏。我認爲我們都是在假設訪問令牌與特定客戶(並因此是祕密)相關的情況下運營的。您的評論表明情況並非如此。這是否意味着我可以使用由我的客戶創建的訪問令牌與其他人的客戶機密? – Troy

相關問題