程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Laravel 8 社交名流登录重定向问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Laravel 8 社交名流登录重定向问题?

开发过程中遇到Laravel 8 社交名流登录重定向问题的问题如何解决?下面主要结合日常开发的经验,给出你关于Laravel 8 社交名流登录重定向问题的解决方法建议,希望对你解决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,请注明来意。
标签: