Plaid Link API documentation表示成功的Plaid链接的结果返回具有以下属性的public_token
:
一旦用户通过Plaid Link成功加入,模块将会 提供一个public_token。这与典型的Plaid API形成对比 请求,返回access_token。
在应用或浏览器中公开是否安全
不能直接用于检索帐户和路由号码(用于身份验证)或交易(用于连接)
可以通过。兑换格子的access_token / exchange_token endpoint。
据推测,这与access_token
形成鲜明对比,这意味着access_token
是一个秘密。但是,据我所知,access_token
需要secret
,还需要客户的ID和secret
值。
假设// Create x2js instance with default config
var x2js = new X2JS();
var jsonObj = {
MyRoot : {
test: 'success',
test2 : {
item : [ 'val1', 'val2' ]
}
}
};
var xmlAsStr = x2js.json2xml_str( jsonObj );
实际上是保密的,那么暴露访问令牌在理论上是否安全?如果没有,我错过了什么?如果是这样,公共代币的重点是什么?
答案 0 :(得分:3)
您的假设是正确的,access_token
应该保密。
公开access_token
的唯一原因是向用户显示该信息(没有理由这样做),或者向客户端提供信息,以便以后可以将其发回(例如用于身份验证的OAuth令牌。
但是如果您公开access_token
,则意味着您的API期望用户在请求信息时发送自己的访问令牌。您的API信任该用户输入。如果用户可以访问其他用户access_token
,则可以将其发送到您的API,并访问其他用户的帐户。
为了防止这种未经授权的访问,您需要跟踪哪个用户可以访问哪些令牌,并且您必须根据请求进行验证,以确保没有未经授权的访问。
此时,你需要问自己,为什么要首先揭露access_token
?客户ID是公开信息,因此您依赖的是secret
不会公开的事实。如果您的秘密被曝光和,您的access_tokens
已被视为公开,那么所有用户的所有银行信息都将被公开。
为确保您的用户数据尽可能安全,绝不应将access_token
提供给最终用户。