当前位置: 首页 > 知识库问答 >
问题:

使用现有的访问令牌和访问令牌秘密进行Oauth API调用

蔚学真
2023-03-14

我正在使用Lusita的PHP Oauth库(https://github.com/Lusitanian/PHPoAuthLib)。

在用户在我的应用程序中获得授权后,我收到了访问令牌和访问令牌密钥的值。现在有了这些值,我想对API进行身份验证调用。如何使用Access Token、Access Token Secret以及Consumer Key和Consumer Secret的值进行调用?我不想每次都授权用户为他进行API调用。有人有主意吗?

我的要求如下:

json_decode服务

我尝试了Firefox的REST客户端和Chrome的高级REST客户端,它们成功地执行了OAuth调用,只使用了Access Token、Access Token Secret、Consumer Key和Consumer Secret的值。

类似地,我想从PHP代码中执行OAuth调用。我使用的库依赖于会话来存储这些值(这需要用户每次登录)并构建授权头和签名。是否有一种方法可以从我的终端手动构建签名和授权头并进行OAuth调用?

共有1个答案

颛孙天宇
2023-03-14

最后,我调整了重用访问令牌的功能。在将令牌存储在配置php文件中之后,我从该文件中获取令牌。

令牌还可以存储在本地PHP会话中并从中读取。

存储令牌的代码在Service/AbstractService.php中:

$这个-

您可以如下所示对其进行修改,以将令牌存储在会话变量中:

if(!isset($_SESSION['access_token'])) {
        $token = new StdOAuth1Token();

        $token->setRequestToken($access_token);
        $token->setRequestTokenSecret($access_token_secret);
        $token->setAccessToken($access_token);
        $token->setAccessTokenSecret($access_token_secret);

        $token->setEndOfLife(StdOAuth1Token::EOL_NEVER_EXPIRES);
        $_SESSION['access_token'] = serialize($token);
}

然后,当向API发出请求时,您可以修改request()函数中的代码以使用会话中的令牌:

更改:

$token=$this-

致:

$token=unserialize($_SESSION['access_token']);

这样,我可以使用自定义PHP会话来存储和检索访问令牌。您还可以使用数据库或文本文件来存储和检索令牌。它工作!希望对某人有用。

 类似资料:
  • 因此,我尝试在浏览器上使用oauth使用者密钥、密钥、访问令牌和令牌密钥对rest客户端进行API调用,其工作正常,如下所示。 请告知如何在Java中实现这一点? http://imgur.com/AtYVLH5 所有oauth都显示了整个过程,但在第一次保存密钥和令牌后,如何进行API调用是个问题。 提前感谢

  • 我使用Oauth已经有一段时间了,但从来没有完全确定这四个术语之间的区别(以及每个术语的功能)。我经常看到(例如在Twitter公共API中) 消费者秘密: 和 但我从来都不知道他们到底在干什么。我知道Oauth有能力授权应用程序(让它们代表用户行事),但我不理解这四个授权条款之间的关系,希望得到解释。 基本上,我不确定访问令牌或令牌密钥是如何生成的,它们存储在哪里,以及它们之间或与使用者密钥和密

  • 我正在使用Haughin的Twitter Codeigniter API使用twitter登录。现在我需要能够代表用户发布推文。问题是,我首先需要找到并获取用户的访问令牌和用户的秘密,并将它们存储在我的数据库中以备后用。一旦我连接到twitter,我在哪里找到这些? 谢谢

  • 我已经阅读了JWT和访问令牌和刷新令牌。我知道您必须在很短的时间(分钟)内设置访问令牌过期,并在过期时使用刷新令牌获取新的访问令牌。 我不清楚三件事: 谁检查访问令牌是否过期?客户端是否通过发送过期的访问令牌和刷新来检查并请求新的访问代码? 谁检查刷新令牌是否过期?(显然刷新令牌也需要过期,尽管需要更长的时间才能过期)。 在我看来,如果刷新令牌过期,则必须提示用户重新登录。在某些情况下(移动应用)

  • 访问令牌凭据(以及任何机密的访问令牌属性)在传输和储存时必须保持机密性,并只与授权服务器、访问令牌生效的资源服务器和访问令牌被颁发的客户端共享。访问令牌凭据必须只能使用带有RFC2818定义的服务器身份验证的1.6节所述的TLS 传输。 当使用隐式授权许可类型时,访问令牌在URI片段中传输,这可能泄露访问令牌给未授权的一方。 授权服务器必须确保访问令牌不能被生成、修改或被未授权一方猜测而产生有效的

  • 访问令牌是用于访问受保护资源的凭据。访问令牌是一个代表向客户端颁发的授权的字符串。该字符串通常对于客户端是不透明的。令牌代表了访问权限的由资源所有者许可并由资源服务器和授权服务器实施的具体范围和期限。 令牌可以表示一个用于检索授权信息的标识符或者可以以可验证的方式自包含授权信息(即令牌字符串由数据和签名组成)。额外的身份验证凭据——在本规范范围以外——可以被要求以便客户端使用令牌。 访问令牌提供了