社交名流,Facebook身份验证重定向URI未在应用中列入白名单

时间:2018-07-16 12:51:00

标签: facebook oauth laravel-socialite

我在本地尝试过,工作正常。当我部署网站并将应用程序在Facebook上供开发人员使用时,它似乎无法正常工作。

enter image description here

所以我添加了实时域和其他内容 所以我有重定向功能:

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

,而不是service.php:

'facebook' => [
    'client_id' => '******',
    'client_secret' => '******',
    'redirect' => 'https://example.com/callback',
],

然后您将拥有类似于以下内容的回调函数:

public function callback(SocialFacebookAccountService $service)
{
    $user = $service->createOrGetUser(Socialite::driver('facebook')->user());
    auth()->login($user);
    return redirect()->to('/home');
}

最后,我获得了日期并在SocialFacebookAccountService中注册了使用,它可以在localhost wamp服务器中正常工作。我认为您不需要它,但是我在这里添加了createOrgetuser函数代码:

public function createOrGetUser(ProviderUser $providerUser)
{
    $account = SocialFacebookAccount::whereProvider('facebook')
        ->whereProviderUserId($providerUser->getId())
        ->first();

    if ($account) {
        return $account->user;
    } else {

        $account = new SocialFacebookAccount([
            'provider_user_id' => $providerUser->getId(),
            'provider' => 'facebook'
        ]);

        $user = User::whereEmail($providerUser->getEmail())->first();
        $lastuser = User::orderBy('id', 'desc')->first();
        $token = str_random(40);

        $userslug = new Slugify();
        $slug = $userslug->slugify($providerUser->getName());

        $slugcheck = User::where('slug', $slug)->exists();
        if ($slugcheck){
            $slug = $slug.$lastuser->id;
        }


        if (!$user) {

            $user = User::create([
                'email' => $providerUser->getEmail(),
                'username' => $slug.'fbuser',
                'password' => str_random(40),
                'token' => $token
            ]);


        }

        $account->user()->associate($user);
        $account->save();

        return $user;
    }
}

就是这样。 Facebook给出错误:

  

此重定向失败,因为该应用的“客户端OAuth设置”中未将重定向URI列入白名单。确保已打开“客户端和Web OAuth登录”,然后将所有应用程序域添加为有效OAuth重定向URI。

facebook URL看起来像: https://www.facebook.com/v3.0/dialog/oauth?client_id=612150382487763&redirect_uri=https%3A%2F%2Foddlayer.com%2Fcallback&scope=email&response_type=code&state=NfHDBomCH3BkLXHjkHUSSFHI8NOkq6vmpj3tJm79

我认为不应该拥有所有这些“%”符号和内容。我很想得到一些帮助。谢谢

0 个答案:

没有答案