这里还有另一个新问题,但希望有人能阐明一些观点:
我将Laravel 5与Socialite结合使用,我希望能够在用户登录后将其重定向到网站上的页面。问题是使用
return redirect('any-path-I-put-here');
Run Code Online (Sandbox Code Playgroud)
只需将其重定向回“ social-site / login?code = afkjadfkjdslkfjdlkfj ...”(其中“ social-site”是指正在使用的任何网站,例如,facebook,twitter,google等)。
因此,在我看来正在发生的事情是,Socialite / Contracts / Provider接口中的redirect()函数覆盖了我事后尝试执行的任何重定向。
为了澄清起见,我的路线设置正确。我已经尝试了可以想象到的每个版本的“重定向”(“到”,“后退”,“预期”,重定向::等),并且正在从我的Auth Controller调用该方法(尽管我已经在其他地方尝试过了)以及)。
问题是,使用社交名流存储和登录用户后,如何覆盖该redirect()?任何帮助表示赞赏!先感谢您。
包含相关重定向的代码为:
public function socialRedirect( $route, $status, $greeting, $user )
{
$this->auth->login( $user, true );
if( $status == 'new_user' ) {
// This is a new member. Make sure they see the welcome modal on redirect
\Session::flash( 'new_registration', true );
return redirect()->to( $route );// This is just the most recent attempt. It originated with return redirect($route);, and has been attempted …Run Code Online (Sandbox Code Playgroud) 在Laracast(Laravel 5.0-Socialite)上使用本教程,特别是直到12.11分钟,我已经成功设置了所有内容。但是,我正在使用Laravel 5.1
定义了我的路线,但当前已注释掉回调提供程序,因为我只是想通过已获取的令牌获取用户详细信息:
Route::get('auth/facebook', 'Auth\AuthController@redirectToProvider');
//Route::get('auth/facebook/aaa', 'Auth\AuthController@handleProviderCallback');
Run Code Online (Sandbox Code Playgroud)在中增加了必需品config>services.php:
'facebook' => [
'client_id' => '##',
'client_secret' => env('FB_SECRET_ID'),
'redirect' => 'http://laratest.dev/auth/facebook',
],
Run Code Online (Sandbox Code Playgroud)我决定暂时返回同一页面(auth/facebook)。这就是为什么我将退货设置domain.devv/auth/facebook为测试。
在我的中AuthController.php,我设置:
public function redirectToProvider(AuthenticateUser $authenticateUser, Request $request)
{
return $authenticateUser->execute($request->has('code'));
}
Run Code Online (Sandbox Code Playgroud)最后,在我的AuthenticateUser.php:
use Illuminate\Contracts\Auth\Guard; (PS. I changed Authenticator to Guard)
class AuthenticateUser {
private $users;
private $socialite;
private $auth;
public function __construct(UserRepository $users, Socialite $socialite, Guard $auth)
{
$this->users = …Run Code Online (Sandbox Code Playgroud)php facebook-graph-api laravel laravel-socialite laravel-5.1
我正在使用laravel流明5.2.
目标[Laravel\Socialite\Contracts\Factory]不可实例化.
当我试图让Laravel使用Socialite包登录Twitter时,我遇到了这个错误.
已完成的工作:
A)在config\app.php中1.Laravel\Socialite\SocialiteServiceProvider :: class 2.'Socialite'=> Laravel\Socialite\Facades\Socialite :: class
我跟着这个:http: //goodheads.io/2015/08/24/using-twitter-authentication-for-login-in-laravel-5/
在过去注册Facebook功能突然工作,当我注册或登录Facebook然后我面临这个错误
RequestException.php第111行中的ClientException:客户端错误:GET https://graph.facebook.com/v2.8/me?access_token=&fields=name,email,gender,verified,link&appsecret_proof=5fb0d218f94cb80241212269c053f0186d360efd82cd3b588eaf621e0c79c 导致400 Bad Request响应:{"error":{"message":"必须使用活动访问令牌来查询有关当前用户的信息.","type":"OAuthExce(截断...)
我正在使用Socialite Package
注意:由于某些原因,我无法更新作曲家或完整的社交名媛包
注意:出于某种目的,我在社交名媛包中有一些变化.如果我更新整个包然后以前的更改将会影响..我在LinkedInProvider和GoogleProvider文件中做了一些更改..我需要适当的解决此错误
我的项目是实时的,用户面临这个问题.任何帮助将不胜感激..
我正在关注此文章以登录Google.我能够成功重定向到Gmail登录.此外,它成功地回调url.
以下是我的代码
public function showGoogleLoginForm() {
$providerKey = \Config::get('services.google');
return \Socialite::driver( 'google' )->scopes(['profile', 'email'])->redirect();
}
Run Code Online (Sandbox Code Playgroud)
问题
我现在正在尝试检查回调是否给了我用户的电子邮件地址.这样,我可以检查用户是否在我的数据库中注册.
有没有办法在回调中获取电子邮件地址?
我能够将用户重定向到gmail登录,并且我能够达到我的回调方法.在回调方法中,我得到了这段代码的错误:\Socialite::driver( 'google' )->user()
我使用此代码时出现此错误\Socialite::driver( 'google' )->user();
我正在使用"laravel/socialite":"^ 3.0",登录facebook.但它显示错误
类型错误:传递给Laravel\Socialite\SocialiteManager :: formatRedirectUrl()的参数1必须是数组类型,给定null,在/var/www/html/mas/vendor/laravel/socialite/src/SocialiteManager.php中调用.
当我在登录控制器中调用以下函数时会发生这种情况
public function socialLogin($social)
{
return Socialite::driver($social)->redirect();
}
Run Code Online (Sandbox Code Playgroud) 我是Laravel Socialite的新手,从社交媒体登录重定向回时出现此错误
Laravel \ Socialite \ Two \ InvalidStateException位于/vendor/laravel/socialite/src/Two/AbstractProvider.php:209**
即使我已经尝试过此解决方案/sf/answers/2221718551/, 但我仍然面临着同样的错误。
这是Socialite控制器的代码
// Redirect to Social provider for login
public function redirectToProvider($provider)
{
return Socialite::driver($provider)->redirect();
}
// Handling get request from social provider
public function handleProviderCallback($provider, Request $request)
{
$user = Socialite::driver($provider)->user();
}
Run Code Online (Sandbox Code Playgroud)
实际上,代码在一开始就起作用了,但是在我将非www重定向到www之后,它就停止了工作。这是.htaccess文件
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 laravel socialite 设置“使用 facebook 登录”。当我尝试登录时,它从 Facebook 获得成功回调,我将获取的数据存储到数据库中并尝试重定向到主页。这样做时,我被重定向回登录页面并且从未到达主页。
在调试错误时,我发现我的 Auth::login($user) 工作不正常。
这是代码-
验证控制器.php
use App\Http\Controllers\Controller;
use Laravel\Socialite\Two\InvalidStateException;
use Auth;
use Socialite;
use App\User;
public function redirectToProvider($provider)
{
return Socialite::driver($provider)->redirect();
}
public function handleProviderCallback($provider)
{
$user = Socialite::driver($provider)->user();
// dd($user);
$authUser = $this->findOrCreateUser($user, $provider);
// dd($authUser);
if(Auth::login($authUser, true)){ // here is the error
return redirect($this->redirectTo);
}
else{
return 'Login not done'; //this prints out to the screen
}
}
public function findOrCreateUser($user, $provider)
{
$authUser = User::where('id', $user->id)->first();
if ($authUser) { …Run Code Online (Sandbox Code Playgroud) 我有一个使用 facebook 登录的 laravel 项目。但经过几天的测试,当我去路线时,它说Sorry, something went wrong.。我没有触摸或修改我的代码以及我的 Facebook 开发者帐户中的应用程序。有人能告诉我发生了什么事吗?
这是我的控制器
public function redirectToProvider(){
$facebookScope = [
'pages_manage_posts',
'pages_read_engagement',
'instagram_basic',
'pages_show_list',
'manage_pages',
'publish_to_groups',
'groups_access_member_info',
];
return Socialite::driver('facebook')->scopes($facebookScope)->redirect();
}
public function facebook(){
try {
$user = Socialite::driver('facebook')->stateless()->user();
// dd($user);
// $this->getPages($user);
$this->getGroups($user);
} catch (\Exception $e) {
return response()->json($e);
}
}
Run Code Online (Sandbox Code Playgroud)
路线
Route::get('/fb','FacebookController@redirectToProvider');
Route::get('/facebookAuth','FacebookController@facebook');
Run Code Online (Sandbox Code Playgroud)
结果是什么样的
拉拉维尔版本:6.2
名媛版:^4.4
更新:如果我删除所有范围,我可以成功登录并获取凭据和令牌。但为什么示波器不起作用?
我正在实施 Facebook 数据删除回调,但我真的迷失了,我无法继续JSONFacebook 所期望的响应。
{ url: '<url>', confirmation_code: '<code>' }
这就是我迷失和卡住的部分。我的问题是
到目前为止,这是我在控制器上所做的事情。
<?php
namespace App\Http\Controllers\User\Auth\Socialite;
use App\Models\User;
use Illuminate\Http\Request;
class FacebookSocialLoginController extends SocialLoginFactory
{
public function provider(): string
{
return 'facebook';
}
public function dataDeletionCallback(Request $request)
{
$signed_request = $request->get('signed_request');
$data = $this->parse_signed_request($signed_request);
$user_id = $data['user_id'];
// here will delete the user base on the user_id from facebook
User::where([
['provider' => 'facebook'],
['provider_id' => $user_id]
])->forceDelete();
// here will …Run Code Online (Sandbox Code Playgroud) laravel ×8
php ×6
laravel-5 ×3
facebook ×2
laravel-5.1 ×1
laravel-5.3 ×1
laravel-5.4 ×1
lumen ×1
lumen-5.2 ×1
redirect ×1