好吧,我正在尝试在laravel 5.1中使用google使用社交网站进行登录,我没有使用范围问题,但我需要将access_type实现为离线,有人知道,我如何在社交网站中为laravel配置?
这是我的连接线
$scopes = [
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/plus.profile.emails.read',
'https://www.googleapis.com/auth/gmail.readonly'
];
return Socialize::driver('google')->scopes($scopes)->setAccessType('offline')->redirect();
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
我正在使用Laravel的Socialite包(版本2.0.0).它对谷歌和github很有用但是当我尝试用facebook登录时,我得到了这个:
ErrorException in FacebookProvider.php line 89:
Undefined index: first_name
Run Code Online (Sandbox Code Playgroud)
在FacebookProvider.php错误是从这个方法:
protected function mapUserToObject(array $user)
{
return (new User)->setRaw($user)->map([
'id' => $user['id'], 'nickname' => null, 'name' => $user['first_name'].' '.$user['last_name'],
'email' => isset($user['email']) ? $user['email'] : null, 'avatar' => $this->graphUrl.'/'.$this->version.'/'.$user['id'].'/picture?type=normal',
]);
}
Run Code Online (Sandbox Code Playgroud)
如果我在这个映射之前dd()的$user参数.我只获得身份验证和经过身份验证的Facebook用户的名称.所以,这意味着我没有收到Facebook用户的电子邮件.我至少需要name和email用户.
经过dd()这种方法看起来是这样的:
protected function mapUserToObject(array $user)
{
dd($user);
return (new User)->setRaw($user)->map([
'id' => $user['id'], 'nickname' => null, 'name' => $user['first_name'].' '.$user['last_name'],
'email' => isset($user['email']) ? $user['email'] : null, …Run Code Online (Sandbox Code Playgroud) 我需要为社交名流使用动态回调url,因此我将该url()函数添加到了 services.php 文件中,它运行良好(并且仍在我的实时服务器上运行),但是当尝试在本地启动该项目时,我收到以下错误。当我删除该url()方法时,一切正常,请帮忙。
PHP Fatal error: Uncaught ReflectionException: Class log does not exist in /home/fenn/projects/jokwit/vendor/laravel/framework/src/Illuminate/Container/Container.php:734
Stack trace:
#0 /home/fenn/projects/jokwit/vendor/laravel/framework/src/Illuminate/Container/Container.php(734): ReflectionClass->__construct('log')
#1 /home/fenn/projects/jokwit/vendor/laravel/framework/src/Illuminate/Container/Container.php(629): Illuminate\Container\Container->build('log', Array)
#2 /home/fenn/projects/jokwit/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(697): Illuminate\Container\Container->make('log', Array)
#3 /home/fenn/projects/jokwit/vendor/laravel/framework/src/Illuminate/Container/Container.php(849): Illuminate\Foundation\Application->make('log')
#4 /home/fenn/projects/jokwit/vendor/laravel/framework/src/Illuminate/Container/Container.php(804): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter))
#5 /home/fenn/projects/jokwit/vendor/laravel/framework/src/Illuminate/Container/Container.php(7 in /home/fenn/projects/jokwit/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 734
Run Code Online (Sandbox Code Playgroud)
这是我的 services.php 文件
<?php
return [
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Stripe, Mailgun, Mandrill, and …Run Code Online (Sandbox Code Playgroud) 直到我更新到Laravel 5.5为止,Socialite的工作都很好。我得到:
\ Socialite \ Two \ InvalidStateException
来自的第209行的Whoops页面错误/Users/marcellopato/Sites/cepcar/vendor/laravel/socialite/src/Two/AbstractProvider.php:
if ($this->hasInvalidState()) {
throw new InvalidStateException;
}
Run Code Online (Sandbox Code Playgroud) 我收到以下错误:
Call to undefined method Laravel\Socialite\One\TwitterProvider::stateless()
Run Code Online (Sandbox Code Playgroud)
抛出此错误的行是:
$userData = Socialite::driver($provider)->stateless()->user();
Run Code Online (Sandbox Code Playgroud)
以上适用于Facebook登录.
有任何想法吗?
我正在尝试使用此命令安装laravel socialite插件
composer require laravel/socialite
Run Code Online (Sandbox Code Playgroud)
但是我会得到以下错误
您的要求无法解决为一组可安装的软件包
问题1-laravel / socialite v3.0.0要求光照/ http〜5.4->可以通过光照/http[v5.4.0]满足。-laravel / socialite v3.0.2需要光照/ http〜5.4->可以通过光照/http[v5.4.0]满足。-laravel / socialite v3.0.3要求光照/ http〜5.4->可以通过光照/http[v5.4.0]满足。-结论:请勿安装illuminate / http v5.4.0-laravel / socialite ^ 3.0的安装要求-laravel / socialite可以满足[v3.0.0,v3.0.2,v3.0.3]。
Laravel版本:5.3
php版本7.0.13
Laravel 社交名流显示 HTTP 错误 403 - 回调中禁止 google 登录,但 facebook 登录工作正常。以前它工作正常,但添加 SSL 后显示错误,我无法找出问题所在,相同的代码在另一个子域上运行良好,Google plus API 已启用。有人请帮帮我,这是网址 - www.beingreligious.com
当我用谷歌登录时它返回
https://www.beingreligious.com/auth/google/callback?state=JSqZHyIkS6bLMTMHZ4dMmbgXJwbXuDiwOqVBSp7I&code=4/WgDWcviWNpyVBB4ScPG7mNzQAveXOAlc9dQ5bvwn7BVhfUyCBegloMU7lK3O7hGxSphyHp86Nm36Vl40eE3LsNc&scope=https://www.googleapis.com/auth/plus.me+https://www.googleapis.com/auth/userinfo.profile+https://www.googleapis.com/auth/userinfo.email&authuser=1&session_state=db2d5443920526f58d68ac724e14f4e5af70497f..2a92&prompt=consent#
Run Code Online (Sandbox Code Playgroud)
这是回调函数
public function handleProviderCallback(Request $request,$provider)
{
//echo "here"; die;
$user = Socialite::driver($provider)->user();
$authUser = $this->findOrCreateUser($user, $provider,$request);
Auth::login($authUser, true);
$next=session()->get('nextbtn');
if($next!='')
{
return redirect('/check_sign_up?next='.$next);
}else{
return redirect('/check_sign_up');
}
}
Run Code Online (Sandbox Code Playgroud)
我需要有关 Laravel Socialite 的帮助。
我使用谷歌服务来预验证我的应用程序。
Socialite::driver('google')->user()->token
Run Code Online (Sandbox Code Playgroud)
上述令牌是否等于 Google 访问令牌?
我正在尝试使用 laravel socialite 无状态选项通过 laravel api 后端集成社交登录,因为我正在使用 vuejs 构建一个单页应用程序,并且一切都是通过 http api 调用完成的。
但是我面临着社交回调的问题,当前的回调被发送到 Laravel 后端并且它可以工作,但是现在我想在开始身份验证之前将用户返回到同一页面,关于如何解决这个问题的任何想法?
public function handleProviderCallback($provider)
{
$user = Socialite::driver($provider)->stateless()->user();
// dont know how to return the user to the last page on vue
}
Run Code Online (Sandbox Code Playgroud) 我已经为我的 Facebook 登录创建了一个自定义端点。该端点从客户端接收 Facebook 访问令牌。我通过“@ionic-native/facebook/ngx”包在我的客户端(Ionic App)中获取此令牌。
在 Laravel Json API 的控制器内,我搜索带有 Socialite 的用户,并插入了 Facebook 访问令牌。获取用户后,我从中生成一个承载访问令牌。响应是此承载访问令牌。
在我的客户端中获取此承载访问令牌后,我需要以某种方式将其添加到“angular-oauth2-oidc”服务中。我已经有一个正常的密码流,但如何实现自定义隐式流,以便我可以将此给定的承载访问令牌设置到我的服务?
我已经尝试过 tryLogin() 但此方法仅适用于我的正常登录端点。我现在确实有两个端点:“.../oauth/token”(正常)和“.../oauth/facebook/token”(facebook)。
public setAccessToken(bearerAccessToken){
//Code to set the given access token in my oAuthService
}
Run Code Online (Sandbox Code Playgroud)
我希望这能以某种方式发挥作用。
canActivate() {
return this.oAuthService.hasValidAccessToken() ||
this.router.parseUrl('/landing-page');
}
Run Code Online (Sandbox Code Playgroud)
这是我的守护者。如果我的 Bearer 访问令牌已设置,hasValidAccessToken()则必须返回 true。
我希望“angular-oauth2-oidc”中有一个可以使用的 setAccessToken 函数。
php ×8
laravel ×7
laravel-5 ×2
api ×1
callbackurl ×1
facebook ×1
google-oauth ×1
google-plus ×1
ionic4 ×1
laravel-5.2 ×1
laravel-5.3 ×1
laravel-5.5 ×1
typescript ×1
vue.js ×1