标签: laravel-socialite

如何在Laravel 5.1中使用Github,Facebook,Gmail和Twitter登录?

我正在尝试使用Laravel 5.1中的社交网站登录.我已经安装了社交网站并遵循以下教程:

https://mattstauffer.co/blog/using-github-authentication-for-login-with-laravel-socialite

http://tutsnare.com/social-authentication-in-laravel-5/

我已经按照每一步,当尝试使用Github登录时,它重定向到Github并在登录后重定向到URL回调,但我的问题是它不会将用户数据存储在我的数据库中.

更新1

现在我的问题是如何使用社交网络验证用户.以下是我的代码,但它会抛出一个错误,说明未定义的索引密码.该错误因为Auth::attempt()有passsword参数.

if (Auth::attempt(['email' => $email, 'user_id' => $user_id])) {
  return redirect()->intended('user/UserDashboard');
} else {
  here i am going to insert if user not logged in already
}
Run Code Online (Sandbox Code Playgroud)

更新2

经过一些研究,我意识到我需要创建自定义身份验证驱动程序.如果有任何想法请发表您的答案

一年前提出同样的问题

laravel使用谷歌帐户登录

php laravel laravel-socialite

8
推荐指数
1
解决办法
3014
查看次数

Laravel Socialite - 谷歌登录失败"缺少必需参数:client_id"虽然指定

我有一个奇怪的问题,使用Laravel Socialite通过Google API登录用户.

一切配置看似正常和普通,但我不断收到错误Missing required parameter: client_id.不仅如此,有时我再次尝试,Missing required parameter: redirect_uri尽管已经提供了所有这些参数,但错误仍然存在.

这就是它的设置方式:

service.php

'google' => [
        'client_id' => 'xxxxxxxxxx-x98asxxxx913ofk5tqvgq7lqfpgdi5u2.apps.googleusercontent.com',
        'client_secret' => 'mklOWJFhpbCzTKxxxx-xxxx',
        'redirect' => 'http://myapp.com/auth/google/callback'
    ],
Run Code Online (Sandbox Code Playgroud)

routes.php文件

Route::get('/auth/{social_channel}', 'Auth\AuthController@redirect_to_provider');

Route::get('/auth/{social_channel}/callback', 'Auth\AuthController@handle_provider_callback');
Run Code Online (Sandbox Code Playgroud)

AuthController.php

/**
     * Redirect the user to the Google authentication page.
     *
     * @return Response
     */
    public function redirect_to_provider($social_channel)
    {
        return Socialite::driver($social_channel)->redirect();
    }

    /**
     * Obtain the user information from GitHub.
     *
     * @return Response
     */
    public function handle_provider_callback($social_channel, SocialAccountService $service)
    {
        $user = $service->create_or_get_user($social_channel, Socialite::driver($social_channel)->user()); …
Run Code Online (Sandbox Code Playgroud)

php nginx google-api laravel laravel-socialite

8
推荐指数
2
解决办法
2740
查看次数

如何处理laravel socialite"缺少授权异常"

在Laravel Socialite中,我们被重定向到facebook.但是当用户取消(不允许Facebook访问公共配置文件)时,它会给出错误授权异常

ClientException在RequestException.php行107:客户端错误:GET https://graph.facebook.com/oauth/access_token?client_id=1309844325833234&client_secret=1304bbdd28400tret49a295d324d577c&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Fauth%2Ffacebook%2Fcallback `导致400 Bad Request响应:{"error":{"message":"缺少授权码","type":"OAuthException","code":1,"fbtrace_id":"Aq9wMwG6ewl"}}

我不想显示这个而是我想通过给出一个消息"Facebook登录失败"返回到我的网站主页,就像stackoverflow facebook登录中显示的那样.

facebook-login laravel laravel-socialite laravel-5.2

7
推荐指数
1
解决办法
2838
查看次数

Laravel 5 Socialite Facebook登录用户取消应用程序请求后回调错误处理

我有一个带有Socialite的Laravel 5网络应用程序,可以通过Facebook帐户登录我的用户.

这是我的回调函数:

public function callback(SocialAccountService $service)
{

    $user = $service->createOrGetUser(Socialite::driver('facebook')->user());

    auth()->login($user);

    return redirect()->to('/home');
}
Run Code Online (Sandbox Code Playgroud)

这是我的SocialAccountService,基本上该函数返回用户,如果存在或创建一个新用户:

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

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

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

            $user = User::whereEmail($providerUser->getEmail())->first();

            if (!$user) {

                $user = User::create([
                    'email' => $providerUser->getEmail(),
                    'name' => $providerUser->getName(),
                ]);
            }

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

            return $user;

        }

    }
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,我能够通过Facebook成功登录我的用户,但当用户点击FB对话框上的取消获取权限时,它会中断.

Facebook应用权限拒绝时的回拨错误

我该如何处理这个错误?我可以在URL框中看到错误消息,但不知道处理它们.

PS我对Laravel和Socialite来说相当新

php facebook laravel laravel-socialite laravel-5.2

7
推荐指数
1
解决办法
3887
查看次数

社交网络laravel 5.4 Facebook提供商

我有一个问题在这里也许同一个人可以帮助我:我安装社交网站pakcage到我的laravel项目,并开始它完美的Facebook,谷歌和linkedin提供商.但是现在当我尝试与facebook连接时,它始终会收到此消息,而其他提供商则完美连接.

怎么了 ?

RequestException.php第111行中的ClientException:客户端错误:GET https://graph.facebook.com/v2.8/me?access_token=&fields=name,email,gender,verified,link&appsecret_proof=5fbda0d218f94cb8024712269c053f0186d360efd82cd358b588eaf621e0c79c 导致400 Bad Request响应:{"error":{"message":"必须使用活动访问令牌来查询有关当前用户的信息.","type":"OAuthExce (截断......)

facebook laravel-5 laravel-socialite

7
推荐指数
1
解决办法
2839
查看次数

linkedin 猫获取虚名

您好,我正在尝试获取从 linkedin 登录的用户的个人资料 url(登录部分已确定),但根据文档,我需要从 api 请求虚名。

所以我要求如下:

https://api.linkedin.com/v2/me?projection=(id,firstName,lastName,vanityName,profilePicture(displayImage~:playableStreams))

但无济于事,请注意,没有访问被拒绝或错误,并且它返回了一些数据,但没有 vanityName。示例返回包含已删除部分的 json

{
"firstName": ...
},
"lastName": ...
},
"profilePicture":...,
"id":"M-jljLc2ue"
}
Run Code Online (Sandbox Code Playgroud)

我使用以下文档作为参考

https://learn.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api?context=linkedin/consumer/context

如果有任何用处,我使用 Laravel Socialite 包作为基础

laravel-socialite linkedin-api

7
推荐指数
1
解决办法
4300
查看次数

使用 Laravel Socialite 令牌登录 Google

嘿,

我在 Android 客户端上验证使用 Google 登录的用户时遇到问题,服务器端是 Laravel,在用户登录的另一端,它给了我一个必须向 Google 验证的令牌,

我使用 Socialite 包,我不知道如何从令牌中获取用户,它有一个名为的方法,getUserFromToken但它发生了很多错误,

我必须从 Google 控制台使用哪些 OAuth 凭据?我只是使用 Web 应用程序凭据,但没有答案!

代码是这样的:

$user = \Laravel\Socialite\Facades\Socialite::driver('google')->userFromToken($googleAuthCode);
    dd($user);
Run Code Online (Sandbox Code Playgroud)

错误是:

客户端错误:GET https://www.googleapis.com/userinfo/v2/me?prettyPrint=false导致401 Unauthorized响应:{“错误”:{“代码”:401,“消息”:“请求缺少所需的身份验证凭据。预期的 OAuth 2(已截断...)

我必须在请求中添加什么?

谢谢

laravel google-oauth laravel-socialite

7
推荐指数
1
解决办法
3984
查看次数

使用 laravel-socialite 后端登录用户通过社交帐户进行 flutter

我正在开发一个 flutter 应用程序,我想实现社交登录(Google 和 Facebook)。

\n

我的 API 是用 Laravel 实现的,并使用 Laravel-socialite 来验证用户身份,有后端、Web 前端(使用 VueJs),现在我正在使用 flutter 开发移动应用程序。

\n

Web 应用程序运行良好(使用vue-social-auth包)。

\n

到目前为止我所做的:

\n
    \n
  1. 使用 flutter_google_sign_in 处理 flutter 应用程序上的身份验证。
  2. \n
  3. 配置了该包,我可以通过该包成功获取用户信息。
  4. \n
\n

我面临的问题:

\n

我似乎没有开始工作是将刚刚登录的用户发送到后端,以提供应用程序内的用户体验。

\n

这是vue-social-auth包提供的内容以及我发送到后端的内容,该后端工作正常:

\n
{code: "4/0AY0e-g442SMxdtLb_MVdQ63u1ydp48bbCRQco5Azoyf3y1rvYybDabyZGOvwAs7ZFJDQHA", scope: "email+profile+openid+https://www.googleapis.com/au\xe2\x80\xa6le+https://www.googleapis.com/auth/userinfo.email", authuser: "0", prompt: "consent"}\n
Run Code Online (Sandbox Code Playgroud)\n

这就是flutter_google_sign_in给出的(除了用户个人资料数据之外):

\n
idToken: "",\naccessToken: "",\nserverAuthCode: "", \n
Run Code Online (Sandbox Code Playgroud)\n

serverAuthCode 始终为null

\n

我怎样才能使用相同的API逻辑,通过社交帐户登录flutter上的用户?

\n

谢谢。

\n

laravel laravel-socialite flutter

7
推荐指数
2
解决办法
4902
查看次数

Laravel Socialite:缺少必需参数:redirect_uri

我正在使用Laravel 5.3和Socialite.

我收到400错误请求错误消息:

Missing required parameter: redirect_uri
Run Code Online (Sandbox Code Playgroud)

它生成的URL是:

https://accounts.google.com/o/oauth2/auth?scope=openid+profile+email&response_type=code&state=RYPmT1B93CaUdi44Z7iwfmRPx3hIy7an7yxAVY9l
Run Code Online (Sandbox Code Playgroud)

详情如下:

service.php

'google' => [
        'client_id' => '1234455-u3ifk8tr1qs41487fmevg2h2s1v6ubue.apps.googleusercontent.com',
        'client_secret' => 'DxSOS0p1xKNuPger3IS_E4-i',
        'redirect' => 'http://localhost:8000/google/callback',
    ],
Run Code Online (Sandbox Code Playgroud)

路线

Route::get('/{provider}/redirect', 'Auth\RegisterController@redirectToProvider');
Route::get('/{provider}/callback', 'Auth\RegisterController@handleProviderCallback');
Run Code Online (Sandbox Code Playgroud)

Google控制台中的授权URI设置

http://localhost:8000/google/callback
Run Code Online (Sandbox Code Playgroud)

调节器

public function handleProviderCallback($provider)
    {
        try {
            $social_user = Socialite::driver($provider)->user();

        } catch (Exception $e) {
            return redirect('/');
        }
}
Run Code Online (Sandbox Code Playgroud)

php laravel-5 laravel-socialite

6
推荐指数
1
解决办法
2080
查看次数

Gmail 登录后 Cookie 被删除

我正在使用 Laravel Framework 5.6 版实现在线预订系统并Laravel Socialite实现 gmail 登录。

\n\n

我有一个方法可以在预订之前检查用户是否登录,或者通过 redis 和 cookie 放置reserveDataredirectUrl指定uniqid以在登录后获取它:

\n\n
public function checkAuthentication(Request $request)\n{\n    $reserveData = json_decode($request->input(\'reserveData\'), true);\n    Session::put(\'reserveData\', $reserveData);\n\n    if (!Auth::check()) {\n        $reserveID = uniqid();\n        Cookie::queue(Cookie::forget(\'reserveID\'));\n        Cookie::queue(Cookie::make(\'reserveID\', $reserveID, 1440));\n\n        $stepData = [\n            \'redirectUrl\' => route(\'reserve\', [\'productId\' => $reserveData[\'productId\']]),\n            \'reserveData\' => $reserveData\n        ];\n\n        Redis::set($reserveID, serialize($stepData));\n\n        return redirect()->route(\'redirectToGmail\');\n    }\n\n    return redirect()->route(\'reserve\', [\'productId\' => $reserveData[\'productId\']]);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

重定向到Gmail

\n\n
public function redirectToGmail()\n{\n    return Socialite::driver(\'google\')->redirect();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题是,仅在用户第一次尝试登录时uniqid从 …

php cookies laravel laravel-socialite

6
推荐指数
1
解决办法
452
查看次数