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

问题描述 投票:0回答:1

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

所有建议,帮助和评论都非常感谢:)

谢谢!!

laravel laravel-5.6 laravel-blade
1个回答
0
投票

问题是当用户被重定向到社交提供者时,比如facebook,表单数据将不在该请求中,所以当facebook重定向到回调时,你将无法在那里找到表单数据! (Facebook不会随身携带)

你可能需要在这里使用一些JavaScript。看看hellojs

© www.soinside.com 2019 - 2024. All rights reserved.