【问题标题】:Trying to wrap my head around the Vimeo API authorisation process试图绕过 Vimeo API 授权过程
【发布时间】:2018-02-12 23:39:29
【问题描述】:

所以我喜欢在 WordPress 插件中使用 vimeo API。

在我看来实际上有 3 种不同的方法可以做到这一点。

所以我的猜测是,我可以将带有视频的网站设置为“主”应用程序,并通过其复杂的授权过程让用户对我的应用程序进行身份验证以执行操作。我不确定这到底是如何工作的......

因为我打算将其用于商业用途,所以我必须将我的插件注册为带有视频的商业应用程序。并不是说我希望被他们拒绝,但我喜欢我的用户拥有自己的网站作为他们自己的应用程序的想法,即使这意味着他们需要更长的设置时间。

我看到一个插件(codeflavors vimeo post Lite)向用户提供client idclient secret 的设置,然后请求获取特定于用户的 API 令牌,因此基本上每个用户都注册了自己的应用程序在 vimeo 上。

/**
 * Constructor, fires up the parent by providing it with
 * client ID, secret and token, if any
 */
public function __construct( $args = array() ){
    // set plugin settings
    $this->settings = cvm_get_settings();
    // set the token
    $token = null;
    if( !empty( $this->settings['oauth_secret'] ) ){
        $token = $this->settings['oauth_secret'];
    }else if( !empty( $this->settings['oauth_token'] ) ){
        $token = $this->settings['oauth_token'];
    }       
    // set up redirect URL
    $redirect_url = admin_url( 'edit.php?post_type=' . cvm_get_post_type() . '&page=cvm_settings' );
    // start the parent
    parent::__construct( $this->settings['vimeo_consumer_key'], $this->settings['vimeo_secret_key'], $token, $redirect_url );

我不明白他们代码的这一部分,令牌是 oauth_secret 或 oauth_token 的部分

但我实际上已经集成了他们的代码,忽略了 oauth_secret 部分,因此如果我的插件将他们的 vimeo 密码和 ID 放入其中,用户可以在 WP 管理页面中生成他们的令牌。

但现在我发现了另外 2 个似乎只使用令牌的插件。

define( 'VIMEOGRAPHY_ACCESS_TOKEN', 'eaf47146f04b5550a3e394f3bbf8273f'); 他们的代币只是在他们的代码中公开。这是打算这样使用吗?

我还在 Vimeo 应用设置中发现您可以在此处生成令牌。 “为脚本或测试生成令牌”。 And I seen yet another plugin 指示用户在那里生成他们的令牌并将该令牌放在 WP 管理页面中。

所以我有点困惑,但我的猜测是我可以将自己的令牌用于公共数据,当用户需要私有数据时,我可以指示然后生成他们自己的令牌并使用它,实际上跳过所有这些复杂的授权内容.尽管对我来说它有一个官方的 api,但它似乎更简单,更容易维护,只是让他们使用一个令牌,比如其他 API 的 api 密钥。

所以我的问题是我对此是否正确。走复杂路线有什么好处。如果我可以让我的用户生成他们自己的令牌?

【问题讨论】:

    标签: php wordpress vimeo-api


    【解决方案1】:

    Authentication 带有 Vimeo API 的令牌可以分为三种类型:

    • 未经身份验证(客户端凭据)
    • 经过身份验证(OAuth2 流)
    • 经过身份验证(个人访问令牌)

    未经身份验证的/客户端凭据令牌只能用于从 Vimeo 获取公共数据,并且由 client_id 和 client_secret 值生成。

    当授予appropriate scopes 时,经过身份验证的令牌可用于从 Vimeo 获取公共和私人数据。经过身份验证的令牌通过以下两种方式之一生成:

    1. 通过 OAuth2 流发送最终用户,他们授权您的应用程序代表其 Vimeo 帐户执行操作

    2. 在应用管理页面生成“个人访问令牌”。此令牌已通过应用创建者帐户的身份验证。

    当然,用例各不相同,但这里有一些关于何时使用这些类型令牌的一般示例:

    • 未经身份验证 - 如果您的应用程序只需要从 Vimeo 检索公共数据,则使用此选项。
    • 通过 OAuth 进行身份验证的令牌 - 如果您的应用程序将由 其他用户 使用,并且需要将 Vimeo 上的数据私有给这些用户的帐户,则使用该令牌。
    • 通过个人访问令牌的身份验证令牌 - 如果您的应用程序只能由您自己的 Vimeo 帐户使用,并且需要在您的帐户中获取私有数据,则使用此选项。

    您提到的每项服务都应概述它们所需的身份验证令牌类型。他们可能需要您作为其应用程序的最终用户,通过 OAuth2 流程并授权应用程序代表您的 Vimeo 帐户执行操作。他们可能还需要您在 Vimeo Developer site 上生成一个应用程序,并使用您的应用程序的 client_id/secret 提供服务,或者创建个人访问令牌并使用该令牌提供服务。

    希望这些信息对您有所帮助!

    【讨论】:

    • 不,它没有帮助,你告诉我很多我已经知道的事情。我试图弄清楚我是否应该让用户为他们的数据提供我的应用程序身份验证,是否应该让他们创建一个应用程序并放入他们的客户端 id+secret 并让我的插件为他们获取令牌,或者我是否应该让他们创建一个应用程序并创建一个令牌并将其放入。您似乎并没有真正尝试回答我,而是从 vimeo 复制粘贴了让我感到困惑的东西。
    • 我的想法是将我的公共令牌用于公共数据,并让他们为他们的私人数据创建自己的令牌以备不时之需。如果我将这个烂摊子与 youtube api 进行比较,那么它有一个简单的 api 密钥,我就完成了。我需要知道我是否可以将用户在其应用上创建的令牌视为像 api 密钥这样简单的东西。
    • 如果应用程序所做的只是从 Vimeo 获取公共数据,则生成未经身份验证的令牌。如果应用程序需要获取私有数据(除了公共数据),请使用经过身份验证的令牌。您指示用户生成该令牌的方法取决于您。例如,要求用户生成个人令牌可能超出了您用户的技术技能范围。最终用户更容易理解 OAuth 流程 - 他们所要做的就是批准或拒绝您的应用程序访问他们的帐户。没有“更好”或“首选”的身份验证方式,每种方法都有不同的用例。
    猜你喜欢
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 2020-02-29
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2023-02-02
    相关资源
    最近更新 更多