我有一个客户端应用程序,它使用具有授权授予类型资源所有者密码凭据的 oauth2。当用户提供她的凭据时,我编写了一个 curl http 请求来获取访问令牌,但是当第一个访问令牌过期时如何请求另一个访问令牌。我读到最好估计访问令牌的有效性。我找到了这个客户端库,但我认为它不会解决我与请求新访问令牌有关的问题,一旦它过期,甚至刷新令牌也过期。
谁能指出我正确的方向如何实现这个或为此目的使用一个库?
我有一个客户端应用程序,它使用具有授权授予类型资源所有者密码凭据的 oauth2。当用户提供她的凭据时,我编写了一个 curl http 请求来获取访问令牌,但是当第一个访问令牌过期时如何请求另一个访问令牌。我读到最好估计访问令牌的有效性。我找到了这个客户端库,但我认为它不会解决我与请求新访问令牌有关的问题,一旦它过期,甚至刷新令牌也过期。
谁能指出我正确的方向如何实现这个或为此目的使用一个库?
您收到的 OAuth2 令牌将包含持续时间。每个令牌在设定的时间后过期,并且该信息作为您收到的对象的一部分发回。因此,您可以将其存储在本地并重复使用,直到过期时间过去。一旦过期,您有两种选择:
唯一的问题是您使用的库是否内置了该库。如果没有,您可以自己添加它。
编辑
如果您想将令牌存储在某处,则 Session 将起作用。当用户在达到主机本身设置的超时到期时关闭浏览器位时,会话不会到期。公平地说,如果他们稍后重新打开应用程序,他们将不得不再次登录,此时您可以请求另一个令牌。如果您决定使用刷新令牌功能,那么将其存储在数据库本身并从那里使用它是有意义的,因为这是一个长期的事情,而不是基于会话的事情。