我有一个网站,其中有一个表格。在表单中,我有一个链接到社交名流的按钮,用户可以单击它,它将从Facebook检索名称和电子邮件。然后,我将用户重定向回表单,以填写剩余信息或提交表单。
但是,所有其他信息在返回页面时都会丢失。
我试图在函数内传递“ Request $ request”。但是,由于按钮未完全提交表单,因此它实际上从未获得信息。
是否有办法确保将先前的信息推送到路由,然后再将该信息推送回重定向?
到目前为止,这是我的代码:
web.php
Route::get('login/{service}', 'Auth\LoginController@redirectToProvider')->name('social');
Route::get('login/{service}/callback', 'Auth\LoginController@handleProviderCallback');
LoginController.php
public function handleProviderCallback(Request $request, $service)
{
$user = Socialite::driver($service)->stateless()->user();
return redirect()->back()
->with(['social' => 'social', 'name' => $user->name, 'email' => $user->email])
->withInput($request->all);
(注意:在视图中,我当然是使用{{old('input_name')}}来获取输入,只要表单提交后失败。)
有什么方法可以从Socialite获取信息并返回表格,而又不会丢失以前的信息?
高度赞赏所有建议,帮助和评论:)
谢谢!
答案 0 :(得分:0)
问题在于,当用户重定向到社交提供程序(例如facebook)时,表单数据将不在该请求中,因此,当facebook重定向到回调时,您将在此处找不到表单数据! (facebook不会为您提供)
您可能需要在此处使用一些JavaScript。看hellojs