背景
我的应用程序从许多不同的源(API)获取数据,并通过它们进行聚合。因此,用户通过OAuth2登录到源中一次,然后我继续对源进行调用。
我使用thephpleague/oauth2-client连接到不同的服务,我也使用提供商包构建在顶部连接到不同的网站。我在那里绝对没有问题。
一旦我进行了身份验证,就会得到一个League\OAuth2\Client\Token\AccessToken实例。
现状
现在,对于存储,我在AccessToken实例上执行一个AccessToken,并存储生成的非结构化string。要加载它,我json_decode并通过构造函数创建一个新实例。不是很有趣。
问题是
如果我想以结构化的方式存储访问令牌(一般是OAuth响应),我需要哪些数据?为了服务器与服务器之间的通信,我需要坚持什么?具体的物品及其类型?我正试图找出存储许多不同提供者的数据模型。
发布于 2020-03-21 22:32:16
#来源答案的来源有2倍:
access_token -伪类型stringtoken_type的必需值-伪类型stringexpires_in的必需值-伪型intrefresh_token的推荐值-伪类型stringscope的可选值,在请求中要求的范围不同的情况下,伪类型string的可选值。
RFC规定The client MUST ignore unrecognized value names in the response.,但是在本节中它们提供了一个以前未定义的value name。
stringresource_owner_id的必需值伪型stringrefresh_token的可选值伪型stringexpires_in的可选值伪型int的可选值,并将expires作为伪型int的值。
传递给构造函数的任何其他内容都被视为额外的数据。
#含意
应该存储
access_token和refresh_token,这两个字符串都包含在所使用的库中,并且在本例中没有必要,但对于其他一些people.expires_in来说,可能是作为time.resource_owner_id中某个点的某种表示形式存储的,因为time.resource_owner_id中的某个点是您的库可以使用的自定义值名称。如果您想要使用it.scope,可以将其存储为字符串,如果应用程序在API请求之前对范围授权进行测试,则可以将其存储。将其存储为string.。
https://stackoverflow.com/questions/60793621
复制相似问题