Как сохранить значения регистрационной формы, которые собираются в базу данных Janrain через аутентификацию захвата Janrain в моей локальной базе данных postgresql. Моя заявка находится в RoR.Как получить данные профиля пользователя из Janrain in Rails
ответ
Во-первых, вам не нужно хранить данные регистрационной формы в вашей собственной базе данных. Это было бы излишним при использовании регистрации Janrain.
После аутентификации пользователя и маркер 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"]'
Вы, вероятно, следует связать обработчик событий JanRain зарегистрирования Javascript: «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.
}
}
}
Когда я бил https://MY_APP_NAME.janraincapture.com/entity?access_token=someaccesstoken в моем браузере, я могу см. данные в формате JSON, но когда я делаю то же самое в своем контроллере, я получаю только URL. Мой код контроллера: 'class UsersController: json," secret "=>" myapikey "} end def retrieve_results @id = params [: id] @url =" https://myapp.janraincapture.com/entity?access_token=#{@id} "@ab = JSON.parse (getData) end' –
Nevermind ... Спасибо за помощь. Вы отлично! –
oh yeah Я уже проголосовал за ваши ответы, но сейчас моя репутация <15 :-( –