标签: laravel-socialite

驱动程序 [provider] 不支持 laravel/socialite

我正在使用 Laravel 5.4 和 Socialite 3.0

对于我添加的每个新社交名流提供商,我都会收到错误消息:

不支持驱动程序 [provider]。

例如,在添加 socialiteproviders/twitch 3.0 时,我会收到错误消息:

不支持驱动程序 [twitch]。

但是,我可以使用已经内置到 Socialite 中的提供程序,例如 github 可以按预期工作。

我尝试了三个不同的提供商,每次都得到相同的结果,我做错了什么?

以下是我的路线:

Route::get('/auth/bnet', 'BnetController@redirectToProvider');

Route::get('/auth/bnet/return', function() {
    $user = Socialite::driver('battlenet')->user();
    dd($user->accessTokenResponseBody);
});

Route::get('/auth/git', function() {
    return Socialite::driver('github')->redirect();
});

Route::get('/auth/twitch', function() {
    return Socialite::with('twitch')->redirect();
});
Run Code Online (Sandbox Code Playgroud)

这是我的 EventServiceProvider 的 $listen:

Route::get('/auth/bnet', 'BnetController@redirectToProvider');

Route::get('/auth/bnet/return', function() {
    $user = Socialite::driver('battlenet')->user();
    dd($user->accessTokenResponseBody);
});

Route::get('/auth/git', function() {
    return Socialite::driver('github')->redirect();
});

Route::get('/auth/twitch', function() {
    return Socialite::with('twitch')->redirect();
});
Run Code Online (Sandbox Code Playgroud)

我在 app.php 中将 SocialiteProviders\Manager\ServiceProvider::class, 添加到我的 providers 数组中,我还向我的别名数组添加了 Socialite 门面('Socialite' => …

laravel laravel-socialite

3
推荐指数
1
解决办法
8914
查看次数

未找到"App\Http\Controllers\Auth\User"类

我正在尝试使用本指南https://scotch.io/tutorials/laravel-social-authentication-with-socialite为Laravel 5.5实现Socialiate .数据从提供程序正确返回,但我无法定义使用和命名空间.

使用此配置:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Socialite;
Run Code Online (Sandbox Code Playgroud)

结果是:

未找到"App\Http\Controllers\Auth\User"类

触发:

$authUser = User::where('providerId', $user->id)->first();
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加App\User:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\User;
use Socialite;
Run Code Online (Sandbox Code Playgroud)

结果是:

找不到类'App\Http\Controllers\Auth\Auth'

触发:

Auth::login($authUser, true);
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢.

php laravel-socialite laravel-5.5

3
推荐指数
1
解决办法
2万
查看次数

Laravel 社交名流指定 facebook 图版本

目前在 Laravel 6 上,如果您安装 Socialite 并检查供应商上的代码,则他们用于获取 Facebook 详细信息的默认版本为 3.3。你可以签入:

vendor/laravel/socialite/src/Two/FacebookProvider.php
Run Code Online (Sandbox Code Playgroud)

此版本的图形可能已被弃用(不确定,但如果您检查 facebook 图形 api 资源管理器,则不能使用较低版本,目前只能使用 v5.0 或 v6.0)。在社交名流上使用时,是否有办法指定默认的 Facebook 图形版本?

facebook-graph-api laravel laravel-socialite

3
推荐指数
1
解决办法
604
查看次数

在 Laravel 中使用 Socialite 登录后重定向到 URL

我需要使用以下网址注册锦标赛:

http://laravel.dev/tournaments/1/register/
Run Code Online (Sandbox Code Playgroud)

这个 URL 在中间件 'auth' 中,所以如果用户没有登录,他会被重定向到登录页面。

我需要的是重定向到

http://laravel.dev/tournaments/1/register/
Run Code Online (Sandbox Code Playgroud)

社交登录后(我有 2 个提供商,fb 和 google)

在这种情况下,我不希望用户被重定向到 .env 中定义的重定向 url

这是我用来登录 Socialite 的功能:

public function execute($request, $listener, $provider) {

    if (!$request) {

        return $this->getAuthorizationFirst($provider);
    }
    $user = $this->users->findByUserNameOrCreate($this->getSocialUser($provider), $provider);
    if (!is_null($user)){
        $this->auth->login($user, true);
    }else{
        Session::flash('error', Lang::get('auth.account_already_exists'));
        return redirect('auth/login');
    }


    return $listener->userHasLoggedIn($user);
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能让系统将我重定向到初始操作而不是默认的 redirect_url 参数。

我通过guest()函数正常登录解决了这个问题,但我不知道在这种情况下如何实现它。

问题与这篇文章非常相似

php redirect laravel laravel-socialite

2
推荐指数
1
解决办法
3781
查看次数

Laravel Socialite with Facebook 未登录

我正在完全按照文档进行操作。

https://github.com/laravel/socialitehttps://laravel.com/docs/5.1/authentication#social-authentication

我已经在 Facebook 上创建了我的应用程序并且一切正常。当我使用 Facebook 按钮单击登录时,它会授权该应用程序并将我带回我的网站。但是,它不会显示我已登录。如果我使用 dd() 而不是下面的重定向,我会从我的 Facebook 帐户中获取所有数据。但是只有登录用户才能看到的页面是不可见的。

这是我的控制器:

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

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

    return redirect('my-profile')
            ->with('message', 'You have signed in with Facebook.');
}
Run Code Online (Sandbox Code Playgroud)

以下是我的路线:

Route::get('login/facebook', 'Auth\AuthController@redirectToProvider');
Route::get('login/facebook/callback', 'Auth\AuthController@handleProviderCallback');
Run Code Online (Sandbox Code Playgroud)

Socialite 已正确安装在 composer.json 中。这些类在 config/app.php 中,我的 FB 应用程序的 ID 在 config/services.php 中。

关于为什么它不起作用的任何想法?

facebook laravel laravel-socialite

2
推荐指数
1
解决办法
2238
查看次数

使用 Laravel Socialite 查询 Facebook Graph API?

我想知道我是否可以使用 Laravel 5 + Socialite 通过 Facebook Graph API 从 Facebook Fanpage 查询最新帖子。

我还没有找到任何例子。Socialite 仅用于用户身份验证而不用于 Grpah Api 请求吗?

facebook facebook-graph-api laravel laravel-5 laravel-socialite

2
推荐指数
1
解决办法
507
查看次数

Laravel Socialite - 重定向前保存 URL

我正在使用Laravel 5.4Socialite因此我的用户可以使用Facebook.

我的网站使用子域newyork.example.comparis.example.com example.com

Facebook URL回调登录的重定向必须absolute如此我设置http://example.com

登录/脸书

public function redirectToProvider()
    {

        $_SESSION['originalURL'] ="http://paris.example.com";

        return Socialite::driver('facebook')
            ->scopes(['rsvp_event', 'public_profile'])
            ->redirect();
    }
Run Code Online (Sandbox Code Playgroud)

登录/脸书/回电

 public function handleProviderCallback(SocialAccountService $service)
    {
        $user = $service->createOrGetUser(Socialite::driver('facebook')->user());
        // $user->token;

        Auth::login($user, true);

        $originalURL = $_SESSION['originalURL'];

        return redirect()->to($originalURL);
    }
Run Code Online (Sandbox Code Playgroud)

问题

当我在route登录/ FACEBOOK我可以看到原始URLparis.example.comHTTP_POST

当我在路由login/facebook/callbackHTTP_POSTexample.com,因为重定向的URL是example.com。我尝试将 URL 保存在 asession var$_SESSION为空。

问题

在 facebook 登录回调重定向后如何获取原始 …

php redirect laravel-socialite laravel-5.4

2
推荐指数
1
解决办法
3377
查看次数

Laravel Socialite Facebook登录错误:参数app_id是必需的

试图让社交名流在我的应用程序上工作.Facebook返回The parameter app_id is required错误.

路线:

Route::get('/login/facebook', '\CommendMe\Http\Controllers\AuthController@redirectToProvider');

Route::get('/login/facebook/callback', '\CommendMe\Http\Controllers\AuthController@handleProviderCallback');
Run Code Online (Sandbox Code Playgroud)

services.php:

'facebook' => [
    'client_id' => env('426129694395672'),  
    'client_secret' => env('840fca14fc9fac4b592cd49f285c2ee9'), 
    'redirect' => 'http://localhost/login/facebook/callback',
],  
Run Code Online (Sandbox Code Playgroud)

AuthController.php

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

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

    $user->name;
}   
Run Code Online (Sandbox Code Playgroud)

尝试/login/facebook路线时,Facebook会返回此错误.为什么会这样?

php facebook laravel laravel-socialite

2
推荐指数
1
解决办法
3371
查看次数

使用socialite laravel检索facebook用户详细信息

我正在使用laravel版本5.4.36,我使用Laravel Sociallite插件将用户连接到facebook.

现在我想要登录用户信息,如出生日期性别,地址,手机号码或此官方文档中给出的任何权限.

我试过以下代码

     $facebookScope = [
        'user_birthday',
        'user_location',
    ];
    $facebookFields = [
        'name', // Default
        'email', // Default
        'gender', // Default
        'birthday', // I've given permission
        'location', // I've given permission
    ];
    return Socialite::driver('facebook')->fields($facebookFields)->scopes($facebookScope)->redirect();
Run Code Online (Sandbox Code Playgroud)

现在,当我点击登录与Facebook按钮时,它显示错误

无效的范围:user_birthday,user_location.此消息仅向开发人员显示.如果存在,您应用的用户将忽略这些权限.请阅读以下文档获取有效权限:https://developers.facebook.com/docs/facebook-login/permissions

我尝试了不同的范围,如字段名称=年龄和范围= user_age_range字段名称=生日和范围名称= user_birthday为字段名称=朋友和字段名称= user_friends

对于我使用的每个范围我得到无效范围的错误. 在此输入图像描述

难道我做错了什么 ?我是否需要更改我为登录创建的Facebook应用程序中的内容?

请建议.

php facebook facebook-graph-api laravel laravel-socialite

2
推荐指数
1
解决办法
2631
查看次数

Facebook 社交名流从令牌和秘密中获取用户

在 laravel 文档中,有一部分是关于让用户停止使用的->userFromTokenAndSecret,但它似乎不适用于 facebook,并返回一个错误,表明该方法不存在。

如何通过令牌和秘密获取用户?

我使用 Laravel 作为 API,以便它无状态地工作,并且我不使用任何重定向。
我使用 Angular 应用程序登录并发送令牌。我需要处理这个。

php facebook laravel dingo-api laravel-socialite

2
推荐指数
1
解决办法
3944
查看次数