Shopify应用的Oauth 2.0身份验证

1.1.6 2018-07-11 09:29 UTC

This package is auto-updated.

Last update: 2024-09-18 05:44:17 UTC


README

此软件包使您能够与Shopify建立OAuth连接。

该软件包最初是为与Lumen一起使用而编写的。但它也可以与Laravel结合使用。请注意,由于它是为Lumen编写的,因此连接器是无状态的。

安装

使用Composer将此软件包安装到您的项目中

composer require codeinternetapplications/shopify-oauth

配置

我们尽量使其尽可能简单。按照以下步骤开始

复制配置文件

shopify_oauth.php配置文件复制到您的配置目录,并在bootstrap/app.php文件中使其可用。

调整配置中的密钥

设置您的api_keyapi_secret_keybase_url。同时调整您的scopes。您可以使用.env文件来执行此操作(见下文)

确保您的应用程序支持Facades和Eloquent

在Lumen中,您必须在bootstrap/app.php中取消以下行的注释

// $app->withFacades();

// $app->withEloquent();

环境文件

将这些变量放入您的.env文件中

SHOPIFY_APP_BASE_URL=https://url-to-your-app/
SHOPIFY_OAUTH_API_KEY=<API key obtained from the partner dashboard>
SHOPIFY_OAUTH_SECRET_KEY=<API Secret key obtained from the partner dashboard>

同时确保您的APP_KEY已定义。由于我们在数据库中加密一些数据,因此Lumen/Laravel需要此密钥来加密。

注册ShopifyOauthServiceProvider

在您的应用程序中注册ShopifyOauthServiceProvider

运行迁移

运行迁移以获取con_shopscon_shop_access_tokens表。

php artisan migrate

中间件使用

确保当您想要使用在线令牌时,您必须添加中间件shopify-oauth-handler。建议在路由中使用这些中间件

  • shopify-hostname-validation
  • shopify-hmac-validation
  • shopify-oauth-handler

例如

$router->group([
    'middleware'    => [
        'shopify-hostname-validation',
        'shopify-hmac-validation',
        'shopify-oauth-handler',
    ]
], function() use ($router) {

    // Redirect to Polaris view
    $router->addRoute(['GET','POST','PUT'], '/[{page}]', function () {
        return view('polaris');
    });
});

安装后执行脚本

要安装webhooks或触发安装应用程序后的某些操作,您必须将事件监听器实现到您的应用程序中。

当应用程序安装时,会触发一个事件。您可以监听此事件并实现自定义操作,例如

  • 安装webhooks
  • 触发一些数据导入

创建监听器并监听

打开您的bootstrap/app.php文件,并确保已启用EventServiceProvider

打开EventServiceProvider.php文件并添加以下行

    protected $listen = [
        'CodeInternetApplications\ShopifyOauth\Events\PostShopifyCallbackEvent' => [
            'App\Listeners\PostShopifyCallbackListener',  // assuming that your listener is located at App\Listeners\PostShopifyCallbackListener
        ],
    ];

在您的app/Listeners文件夹中创建一个新的本地监听器,并添加您要执行的脚本。您可以从以下模板开始

<?php

namespace App\Listeners;

use CodeInternetApplications\ShopifyOauth\Events\PostShopifyCallbackEvent;

class PostShopifyCallbackListener
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  PostShopifyCallbackEvent  $event
     * @return void
     */
    public function handle(PostShopifyCallbackEvent $event)
    {
        // log
        \Log::channel('stack')->info('PostShopifyCallbackEvent is triggered', []);
    }
}