如何从Rails中的Janrain获取用户配置文件数据

时间:2016-10-13 14:35:06

标签: ruby-on-rails ruby postgresql janrain

如何在本地postgresql数据库中存储通过Janrain捕获身份验证进入Janrain数据库的注册表单的值。我的申请是在RoR。

1 个答案:

答案 0 :(得分:1)

首先,您不需要在自己的数据库中存储注册表单数据。使用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.
    }
  }
}