2015-08-05 4 views
0

У меня уже есть приложение для подключения рабочей полосы, но вместо этого у Devise теперь возникают проблемы с тем, как реализовать Stripe Connect с Parse.Stripe Connect With Parse

это то, что у меня уже есть:

class OmniauthCallbacksController < Devise::OmniauthCallbacksController 
    def stripe_connect 
    @user = current_user 
    if @user.update_attributes({ 
     provider: request.env["omniauth.auth"].provider, 
     uid: request.env["omniauth.auth"].uid, 
     access_code: request.env["omniauth.auth"].credentials.token, 
     publishable_key: request.env["omniauth.auth"].info.stripe_publishable_key 
    }) 
     # anything else you need to do in response.. 
     sign_in_and_redirect @user, :event => :authentication 
     set_flash_message(:notice, :success, :kind => "Stripe") if is_navigational_format? 
    else 
     session["devise.stripe_connect_data"] = request.env["omniauth.auth"] 
     redirect_to new_user_registration_url 
    end 
    end 
end 

Также мои маршруты у меня есть:

devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks" } 

Я просто хочу знать, как я могу управлять этим, так что я могу использовать его с Разбор RestApi, Благодарю.

+0

Что именно вы хотите достичь с помощью API-интерфейса Parse REST? – EugZol

+0

Я уже внедрил вход в систему и вышел из системы Parse Rest API, но после входа в систему я хочу, чтобы пользователь соединился с полосой, а их клавиши с полосой будут сохранены в учетной записи. – user3670235

+0

Хорошо, какую библиотеку вы используете для Parse REST API? Не могли бы вы показать, как выглядит этот код входа/выхода? – EugZol

ответ

0

Вам не нужно удалять устройство, потому что оно обрабатывает аутентификацию пользователя для вашего сайта. С другой стороны, проанализируйте ваши данные (в основном, сохраняя и восстанавливая их).

В вашем методе #stripe_connect вы, кажется, успешно получать данные о пользователе, который нашивки дает вам после входа пользователя в систему.

Если вы хотите сохранить эти данные, узнать, как использовать Objects API.

Если вы хотите сохранить информацию в своей собственной базе данных (вместо Parse), просто забудьте о Parse, ваш код в порядке.

UPD. Если вы используете omniauth-stripe-connect, вы можете избавиться от Devise (потому что вам не нужны его широкие функции, просто соединение с полосой).

, следуя инструкциям в документации, добавьте следующее config/initializers/omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :stripe_connect, ENV['STRIPE_CONNECT_CLIENT_ID'], ENV['STRIPE_SECRET'] 
end 
OmniAuth.config.logger = Rails.logger 

Затем добавьте к вашему routes.rb:

get '/auth/:provider/callback', to: 'sessions#create' 

Затем переименовать контроллер в SessionsController и ваш stripe_connect метод к create. У вас будет доступ к тому же request.env['omniauth.auth'] хэш.

+0

Почему мне не нужно избавляться от разработки? Я больше не хочу использовать логин/регистрацию. У меня есть Parse как мой вход. – user3670235

+0

У меня уже есть пользователи в Parse, поэтому я хочу, чтобы они могли входить в систему, а затем подключаться к полосе. – user3670235

+0

Но вы хотите, чтобы ваши пользователи вошли в систему через Stripe, или нет? – EugZol