在PHP中从网站API获取授权令牌
我正在做一个项目,我需要集成一个api。API的网站要求对其API的每个请求都通过授权令牌进行授权。 我的问题是如何安全地保存授权令牌,并在到期后重新生成令牌,以便我的网站的用户能够使用访问令牌进行请求。 令牌将在2小时后过期 下面是我获取授权令牌的请求和响应在PHP中从网站API获取授权令牌,php,json,api,curl,Php,Json,Api,Curl,我正在做一个项目,我需要集成一个api。API的网站要求对其API的每个请求都通过授权令牌进行授权。 我的问题是如何安全地保存授权令牌,并在到期后重新生成令牌,以便我的网站的用户能够使用访问令牌进行请求。 令牌将在2小时后过期 下面是我获取授权令牌的请求和响应 response = unirest.post("https://webapisite.com/merchant/access", headers={ "Accept": "application/json" }, param
response = unirest.post("https://webapisite.com/merchant/access",
headers={ "Accept": "application/json" },
params={ "apiKey": "my_api_key, "secret": "my_secret" });
我将收到以下json
响应
{
"status": "success",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTQwLCJuYW1lIjoic2F2YW5hIHNtYXJ0c2F2ZSIsImFjY291bnROdW1iZXIiOiIiLCJiYW5rQ29kZSI6Ijk5OSIsImlzQWN0aXZlIjp0cnVlLCJjcmVhdGVkQXQiOiIyMDE2LTEyLTA4VDEwOjM4OjE5LjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDE3LTA2LTE0VDEzOjAxOjQ5LjAwMFoiLCJkZWxldGVkQXQiOm51bGwsImlhdCI6MTQ5ODMzNTE2NSwiZXhwIjoxNDk4MzQyMzY1fQ.WojvkYOC2j6XTUfg_E4WQkxQChPUyCgYUCIKaW83YXA", // a valid merchant token
"config":{}
}
您应该将此令牌保存在DB中。 在一个表中,保存访问令牌、身份验证令牌和过期日期。 如果需要,可以保存多条记录,但如果只有一个身份验证令牌,一条记录就足够了 在每次调用该API之前,您都要在DB中检查可用的访问令牌是否仍然有效,如果无效,则必须通过auth令牌续订访问令牌 我不明白你用哪种语言来完成这项任务。 如果使用javascript,您可以为后端发布帖子,询问最新的有效令牌
希望这会有所帮助。对于这样的用例,最常用的标准可能是 OAuth是一种广泛认可的HTTP之上的协议,用于在成功身份验证后向客户端颁发令牌(另请参见ServerFault上的:“”)。它提供不同的“流”来获取令牌,在您的情况下,最合适的可能是“”流。然后,客户机可以使用提供给他们的令牌来发出实际的API请求
存储令牌通常在数据库中完成。在真正无状态的应用程序中,可以消除在服务器端存储令牌的需要。最好将令牌保存在DB中并存储在会话中。 对于每个请求,您都可以从会话中获取令牌,并通过DB存储的会话跟踪会话活动。
基本上这种东西是项目流程的一部分,因此,根据项目需要和安全方面的流程,我们可以做出决定。这里的标准方法是将令牌保存到用户的会话中,或保存到一个表中的数据库中,在该表中,令牌与用户帐户链接,并随附到期日期,以便在需要时进行刷新,然后可以使用magic方法调用()在php中,并在API上检查您的令牌是否仍然有效,如果不只是请求一个新令牌的话。在结束续订令牌的过程后,将执行被调用函数,现在将使用一个新令牌。