Являясь новичком RoR, я использую код rails-stripe-membership-saas (https://github.com/RailsApps/rails-stripe-membership-saas) для базы моего приложения (используя Devise для аутентификации) и пытаюсь интегрировать в него драгоценный камень ruby-box (https://github.com/attachmentsme/ruby-box) для доступа к API Box.RoR: Конфликты Devise/OAuth2?
Я сталкиваюсь с тем, что, как я считаю, является конфликтом между сеансом Devise и последующим сеансом Ruby-box (OAuth2). Моя модель пользователя содержит:
# :omniauthable
devise :database_authenticatable, :registrerable, :recoverable, :rememberable, :trackable, :validatable
После того как пользователь входит в систему, я перенаправлять их Box, чтобы дать им возможность предоставить доступ к моему заявлению. Это обрабатывается в моем application_controller и в настоящее время работает в качестве такового,
def after_sign_in_path_for(resource)
case current_user.roles.first.name
when 'silver'
require 'ruby-box'
session = RubyBox::Session.new({client_id: '###',
client_secret: '###'})
authorize_url = session.authorize_url('https://myurl.com/auth/box')
end
end
После пользователь дает доступ к моему приложению, они будут перенаправлены на мой контроллер Box (авт/коробке), где я пытающийся получить доступ лексема из Box на основе кода они предоставляют в перенаправлении,
class BoxController < ApplicationController
def new
@token = session.get_access_token('code-returned-to-redirect_url')
end
end
Это когда я бегу в вопрос, получаю ошибку:
undefined method 'get_access_token' for #<Rack::Session::Abstract::SessionHash:0x0000003b4cf00>
Я могу только предположить, что в вызове " сеанс ", что не позволяет отличить текущий сеанс пользователя и сеанс Box? Как я могу исправить это?
Спасибо за ваше время и помощь.
Спасибо за подробное объяснение, я очень благодарен. – user464180