Как я могу хранить значения регистрационной формы, которые поступают в базу данных Janrain через аутентификацию захвата Janrain в моей локальной базе данных postgresql. Мое приложение находится в RoR.
Как получить данные профиля пользователя из Janrain в Rails
Ответы (1)
Во-первых, вам не нужно хранить данные регистрационной формы в собственной базе данных. Это было бы излишним при использовании Janrain Registration.
После того, как пользователь прошел аутентификацию и токен Janrain OAuth был отправлен в виджет регистрации, вы можете использовать этот токен для вызова конечной точки объекта:
https://SOME_APP_NAME.janraincapture.com/entity?access_token=someaccesstoken
Это вернет данные профиля аутентифицированного пользователя в формате json. Вы можете отфильтровать поля, используя параметр атрибутов, как описано здесь: https://docs.janrain.com/api/registration/entity/
https://SOME_APP_NAME.janraincapture.com/entity?access_token=someaccesstoken&attributes='["uuid","familyName","givenName"]'
Вероятно, вам следует привязаться к обработчику событий Javascript регистрации Janrain: «onCaptureCreateSession», который при запуске будет содержать токен доступа. Затем вы можете отправить этот токен на свой сервер, где он может сделать вызов API сущности, а затем сохранить любые соответствующие данные на вашем сервере (при необходимости).
janrain.events.onCaptureSessionCreated.addHandler(function(result) {
//make an ajax call to your server here with the token:
var token = result.accessToken
});
Если вам абсолютно необходимо получить данные поля формы до отправки формы, вы можете привязаться к событию onSubmit формы и просто получить данные поля из формы до ее отправки. Это должно быть достижимо с использованием простого Javascript или большинства основных библиотек.
Вот пример, который должен помочь вам начать:
janrain.events.onCaptureRenderComplete.addHandler(function(result) {
if (result.renderingBuiltInScreen == false) {
//NOTE: screen names can be configuration dependent.
if(result.screen == "traditionalRegistration" || result.screen == "socialRegistration"){
//bind to rendered form here and do stuff
//form names and field names are configuration dependent.
}
}
}
class UsersController < ApplicationController require 'rest_client' def index @results = @ab @url def getData response = RestClient::Resource.new(@url,{ :content_type => :json, "secret" => "myapikey" } end def retrieve_results @id = params[:id] @url = "https://myapp.janraincapture.com/entity?access_token=#{@id}" @ab = JSON.parse(getData) end
- person Mayuresh Srivastava; 14.10.2016