RoR 초보자로서, 내 응용 프로그램의베이스 (인증 용 Devise 사용)에 레일 스 트라이브 멤버십 코드 (https://github.com/RailsApps/rails-stripe-membership-saas)를 사용하고 액세스 할 수있는 루비 박스 젬 (https://github.com/attachmentsme/ruby-box)을 통합하려고 시도하고 있습니다. Box API.RoR : Devise/OAuth2 충돌?
Devise 세션과 후속 루비 박스 (OAuth2) 세션 사이에 충돌이 있다고 생각합니다. 내 사용자 모델은 다음을 포함합니다 :
# :omniauthable
devise :database_authenticatable, :registrerable, :recoverable, :rememberable, :trackable, :validatable
사용자가 로그인하면 사용자가 응용 프로그램에 대한 액세스 권한을 부여 할 수 있도록 상자로 리디렉션됩니다. 이것은 내 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
사용자 부여가 내 응용 프로그램에 액세스하면
는, 그들이 내가 액세스를 얻기 위해 시도하고있어 내 박스 컨트롤러 (인증/상자)로 리디렉션됩니다, 같은 작동합니다 그들이 리디렉션에서 제공하는 코드를 기반으로 상자에서 토큰, 내가 문제로 실행하면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