Мои папки:
app/
- -controllers/
- -shopify_app/
- -webhooks_controller.rb
lib/
- -shopify_app/
- -controller_concerns/
- -webhook_verification.rb
Код webhook_verification.rb:
module ShopifyApp
module WebhookVerification
extend ActiveSupport::Concern
included do
skip_before_action :verify_authenticity_token, raise: false
before_action :verify_request
end
private
def verify_request
data = request.raw_post
return head :unauthorized unless hmac_valid?(data)
end
def hmac_valid?(data)
secret = ShopifyApp.configuration.secret
digest = OpenSSL::Digest.new('sha256')
ActiveSupport::SecurityUtils.secure_compare(
shopify_hmac,
Base64.encode64(OpenSSL::HMAC.digest(digest, secret, data)).strip
)
end
def shop_domain
request.headers['HTTP_X_SHOPIFY_SHOP_DOMAIN']
end
def shopify_hmac
request.headers['HTTP_X_SHOPIFY_HMAC_SHA256']
end
end
end
Я хотел бы включить webhook_verification.rb в webhooks_controller.rb, выполнив "include ShopifyApp::WebhookVerification", но это не работает.
Как я могу загрузить папку lib?
Примечание. Я пытался написать это в файле config/application.rb, но это не сработало
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]