大佬教程收集整理的这篇文章主要介绍了Laravel 8 社交名流登录重定向问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用的是 laravel 7,最近转移到了 laravel 8。我在登录过程中遇到了问题。问题是,当我在网页上单击使用社交媒体按钮登录时,在登录相关社交媒体帐户后,它会重定向到我的登录屏幕。此时当我点击主页按钮登录过程完成并重定向到主屏幕。
composer.Json
"PHP": "^7.4.0","barryvdh/laravel-dompdf": "^0.8.5","ckNow/laravel-money": "^6.0","dr5hn/countrIEs-states-citIEs-database": "*","fIDeloper/proxy": "^4.0","guzzlehttp/guzzle": "^7.0.1","hisorange/browser-detect": "^4.4","laravel/framework": "^8.0","laravel/legacy-factorIEs": "^1.1","laravel/socialite": "^5","laravel/tinker": "^2.0","laravel/ui": "^3.0","laravelium/sitemap": "^8.0","mcamara/laravel-localization": "^1.4","PHPoffice/PHPword": "^0.17.0","realrashID/sweet-alert": "^3.2","silviolleite/laravelpwa": "^2.0"
routes/web.PHP
Route::get('login/{provIDer}',[SocialController::class,'redirecttoprovIDer']);
Route::get('login/{provIDer}/callback','handleProvIDerCallback']);
控制器
namespace App\http\Controllers;
use App\Models\Country;
use App\Models\DateTime;
use App\Models\PaymentAccount;
use Illuminate\Auth\Events\VerifIEd;
use Illuminate\http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Laravel\Socialite\Facades\Socialite;
use Exception;
class SocialController extends Controller
{
public function redirecttoprovIDer($provIDer)
{
return Socialite::driver($provIDer)->redirect();
}
public function handleProvIDerCallback($provIDer)
{
try {
$user = Socialite::driver($provIDer)->stateless()->user();
$isUser = User::where('provIDer_ID',$user->ID)->first();
if ($isUser) {
Auth::login($isUser,true);
return redirect()->intended('/home');
} else {
$createuser = $this->createuser($user,$provIDer);
Auth::login($createuser,true);
return redirect()->intended('/home');
}
} catch (Exception $exception) {
dd($exception->getMessage(),$exception->getCode() . $exception->getTraceAsstring());
}
}
public function createuser($user,$provIDer)
{
$getCurrenctLocale = \Mcamara\LaravelLocalization\Facades\LaravelLocalization::getCurrentLocale();
$getCurrentRegional = \Mcamara\LaravelLocalization\Facades\LaravelLocalization::getCurrentLocaleRegional();
$countryISO2 = explode('_',$getCurrentRegional);
if (count($countryISO2) != 0) {
$countryISO2 = $countryISO2[1];
}
$user = User::create([
'name' => $user->getname(),'email' => $user->getEmail(),'avatar' => $user->getAvatar(),'provIDer_ID' => $user->getID(),'provIDer' => $provIDer,'language' => $getCurrentRegional,'location' => $getCurrenctLocale,'timezone' => \config('app.timezone','UTC'),'date_format' => DateTime::getDateFormats()[0]['ID'],'time_format' => DateTime::getTimeFormats()[0]['ID'],'currency' => Country::query()->where('iso2',$countryISO2)->get('currency')->first()->currency,]);
$paymentAccount = new PaymentAccount();
$paymentAccount->creator_ID = $user->ID;
$paymentAccount->owner_name = "";
$paymentAccount->type_ID = PaymentAccount::PAYMENT_ACCOUNT_TYPE_CASH;
$paymentAccount->account_name = "Nakit";
$paymentAccount->save();
return $user;
}
}
预先感谢您提供的宝贵帮助
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的Laravel 8 社交名流登录重定向问题全部内容,希望文章能够帮你解决Laravel 8 社交名流登录重定向问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。