Laravel社交名媛-使用社交名言填写字段并重定向回表单,而不会丢失其他信息

时间:2018-09-13 18:12:48

标签: laravel laravel-5.6 laravel-blade

我有一个网站,其中有一个表格。在表单中,我有一个链接到社交名流的按钮,用户可以单击它,它将从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获取信息并返回表格,而又不会丢失以前的信息?

高度赞赏所有建议,帮助和评论:)

谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于,当用户重定向到社交提供程序(例如facebook)时,表单数据将不在该请求中,因此,当facebook重定向到回调时,您将在此处找不到表单数据! (facebook不会为您提供)

您可能需要在此处使用一些JavaScript。看hellojs