gpt4 book ai didi

php - Laravel Facebook 登录 - 无回调(本地主机)

转载 作者:行者123 更新时间:2023-12-01 13:49:20 27 4
gpt4 key购买 nike

我的第一个问题:是否可以在本地主机上进行测试? (因为我可以想象这可能是我的问题)

我阅读了文档并按照描述做了所有事情。我浏览到/auth/facebook,我被重定向到 Facebook,在那里我“接受”了这些条款。我被重定向到此链接:http://localhost:8000/auth/login#_=_

所以我尝试调试并在我的 Authcontroller 中执行了 dd($user);,但没有给出输出。

    public function redirectToProvider()
{
return Socialite::driver('facebook')->redirect();
}

public function handleProviderCallback()
{
$user = Socialite::driver('facebook')->user();
dd($user);

// $user->token;
}

有人知道我做错了什么吗?

最佳答案

需要查看您的路线配置以获取更多信息,但会使用您提供的信息试一试。

请注意,您将被重定向到 http://localhost:8000/auth/login#_=_

在 facebook 上授权后,您似乎被重定向到应用程序的登录页面

config/services.php 中,确保对于您的 facebook 登录配置,您的 redirect url 指向您在路由配置中定义的路由处理回调。

例如

// config/services.php
...

'facebook' => [
'client_id' => 'my_facebook_client_id',
'client_secret' => 'my_facebook_client_secret',
'redirect' => 'http://localhost:8000/auth/facebook/callback',
],

...

然后应该在路由配置中定义路由 http://localhost:8000/auth/facebook/callback:

// app/Http/routes.php
...

Route::get('auth/facebook/callback', 'Auth\AuthController@handleProviderCallback');

...

请注意,路由配置必须允许 GET 请求,因为用户将被重定向。

您的 dd($user) 应该可以正常使用此设置。


您如何保存用户数据取决于您的模型架构。

例如,在您没有其他注册方法而仅使用 facebook 登录的简单情况下,您可以这样做:

public function handleProviderCallback()
{
$facebookData = Socialite::driver('facebook')->user();

// check if already in DB
try{
$user = User::where('facebook_id', $data->id)->firstOrFail();
} catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) {
// create a new user
$user = new User();

// set the properties you want
// $user->facebook_id = $data->id;
// ...

// then save
$user->save();
}

// login the user
Auth::login($user);

// perhaps return a redirect response
return redirect()->action('MyController@myAction');
}

关于php - Laravel Facebook 登录 - 无回调(本地主机),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33132676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com