Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook 在操作之间保存Omniauth数据_Facebook_Session_Ruby On Rails 4_Devise_Omniauth - Fatal编程技术网

Facebook 在操作之间保存Omniauth数据

Facebook 在操作之间保存Omniauth数据,facebook,session,ruby-on-rails-4,devise,omniauth,Facebook,Session,Ruby On Rails 4,Devise,Omniauth,在omniauth facebook中,facebook有时不为用户提供电子邮件(针对那些使用电话号码注册的用户) 因此,如果提供了电子邮件,该例程是正常的,但如果不是,我需要将用户重定向到表单,以便他们可以手动输入电子邮件 问题是,我需要保留从facebook收到的数据,以便在提供电子邮件后创建用户 将其保存在会话['designe.facebook.data']中会导致cookie溢出(在Rails4中,由于加密)。使用cookies会将整个事情变成一个长字符串,这将使从那里提取数据变得更加

在omniauth facebook中,facebook有时不为用户提供电子邮件(针对那些使用电话号码注册的用户)

因此,如果提供了电子邮件,该例程是正常的,但如果不是,我需要将用户重定向到表单,以便他们可以手动输入电子邮件

问题是,我需要保留从facebook收到的数据,以便在提供电子邮件后创建用户

将其保存在会话['designe.facebook.data']中会导致cookie溢出(在Rails4中,由于加密)。使用cookies会将整个事情变成一个长字符串,这将使从那里提取数据变得更加困难


是否有更好的方法将数据传递给下一个操作?

为什么要将从OmniAuth接收到的每一点信息都放到会话中?尽量只储存你需要的信息。大多数情况下,您不需要“额外”信息,因此这肯定会起作用:`session[designe.facebook.data']=request.env[“omniauth.auth”]。除了('extra')。如果你真的需要“额外”字段中包含的一些信息,那么创建你自己的、较小的散列并将其存储在会话中。谢谢,这就是我最终要做的。我很高兴这是一个很容易解决的问题!如果你真的需要这些信息,那就更难了。