質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

3929閲覧

Laravel Socialite 4.1.0でのエラー

m.m.

総合スコア8

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2019/03/09 03:11

編集2019/03/09 04:04

Laravel初心者です。

Laravel 5.7.28
XAMPP
Socialite 4.1.0

でOAuth認証を実装しようと考え、下記サイトを参考にしました。

https://leben.mobi/blog/laravel5_social_login/php/

一通りサイトに習いコードを記述しましたが、ソーシャルボタンを押下時に下記エラーが発生します。

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_RECOVERABLE_ERROR) Argument 1 passed to Laravel\Socialite\SocialiteManager::formatRedirectUrl() must be of the type array, null given, called in C:\xampp\htdocs\demo\vendor\laravel\socialite\src\SocialiteManager.php on line 126

エラー箇所は下記のようです。
C:\xampp\htdocs\demo\vendor\laravel\socialite\src\SocialiteManager.php

* * @param array $config * @return array */ public function formatConfig(array $config) { return array_merge([ 'identifier' => $config['client_id'], 'secret' => $config['client_secret'], 'callback_uri' => $this->formatRedirectUrl($config), ], $config); } /** * Format the callback URL, resolving a relative URI if needed. * * @param array $config * @return string */ protected function formatRedirectUrl(array $config) { $redirect = value($config['redirect']); return Str::startsWith($redirect, '/') ? $this->app['url']->to($redirect) : $redirect; } /** * Get the default driver name. * * @throws \InvalidArgumentException *

原因がわからず困っております。
ご教授よろしくお願いします。

追記:
SocialiteManager.php 126行付近

public function buildProvider($provider, $config) { return new $provider( $this->app['request'], $config['client_id'], $config['client_secret'], $this->formatRedirectUrl($config), Arr::get($config, 'guzzle', []) ); }

config/services.php

'google' => [ 'client_id' => env('**********************************************************'), 'client_secret' => env('*************************'), 'redirect' => env('**************************'), ],

config/app.php

'providers' => [ Laravel\Socialite\SocialiteServiceProvider::class, ], 'aliases' => [ 'Socialite' => Laravel\Socialite\Facades\Socialite::class, ],

Auth/LoginController.php

<?php namespace App\Http\Controllers\Auth; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\AuthenticatesUsers; use App\Events\Logined; use Socialite; use App\User; use Auth; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; protected $maxAttempts = 2; // ログイン試行回数(回) protected $decayMinutes = 10; // ログインロックタイム(分) /** * Where to redirect users after login. * * @var string */ protected $redirectTo = '/verified'; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest')->except('logout'); } /** * ログイン認証後の処理 * @param Request $request * @param $user */ protected function authenticated(Request $request, $user) { // ログインイベントを発火させ最終ログイン日時を記録する event(new Logined()); } public function username() { return 'userid'; } /** * Handle Social login request * * @return response */ public function socialLogin($social) { return Socialite::driver($social)->redirect(); } /** * Obtain the user information from Social Logged in. * @param $social * @return Response */ public function handleProviderCallback($social) { $userSocial = Socialite::driver($social)->user(); $user = User::where(['email' => $userSocial->getEmail()])->first(); if($user){ Auth::login($user); return redirect()->action('HomeController@index'); }else{ return view('auth.register',['name' => $userSocial->getName(), 'email' => $userSocial->getEmail()]); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xenbeat

2019/03/09 05:28

何のOAuthサービスを利用しようとしているのですか?
guest

回答2

0

ベストアンサー

回答は先に答えた方の通りですが、修正したあと

php artisan clear-compiled
composer dump-autoload
php artisan optimize

このコマンドを実行してみてください

投稿2019/03/09 06:32

garchomp

総合スコア128

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.m.

2019/03/09 06:51

記述の変更は行っていないのですがご回答のコマンドを実行したところ動作しました。ありがとうございました。
guest

0

実際のエラー原因はformatRedirectUrlよりももっと前の段階。
config/services.phpやコントローラーをどう書いたかの情報を出さないと他人には分からない。
今回の場合は多分config/services.phpの記述が足りない。

投稿2019/03/09 03:28

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.m.

2019/03/09 04:01

ご返答ありがとうございます。他記述を追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問