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

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

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

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

PHP

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

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

0回答

1494閲覧

ログインするときにリロード状態になってしまい処理が通りません。しかし、リロードやホームに戻るとログイン状態になっています。

tenlife

総合スコア70

Laravel

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

PHP

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

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2020/10/18 22:00

編集2022/01/12 10:55

laravelのauthを用いたログイン機能を使用しています。
普通のemail,passwordをそれぞれ打ち込みログインしようとしても、ずっとリロード状態が続いてしまいます。(リクエストを処理をしています、の文字も画面下に表示されています。)

解決したいこと: email,passwordでログイン出来るようにしたいです。

現状: 前述の記載の動きになってしまいます。だが、ホームにアクセスしたりリロードボタンを押すとログイン状態に変化します。たまにそのままログインできる時もあります。

web

1Auth::routes(['verify' => true]); 2 3/ google 4Route::get('/login/google', 'Auth\LoginController@redirectToGoogle')->name('google_login_before'); 5Route::get('/login/google/callback', 'Auth\LoginController@GoogleCallback')->name('google_login_after'); 6 7// facebook 8Route::get('/login/facebook', 'Auth\LoginController@redirectTofacebook')->name('facebook_login_before'); 9Route::get('/login/facebook/callback', 'Auth\LoginController@facebookCallback')->name('facebook_login_after');

LoginController

1<?php 2 3namespace App\Http\Controllers\Auth; 4 5use App\Http\Controllers\Controller; 6use App\Providers\RouteServiceProvider; 7use Illuminate\Foundation\Auth\AuthenticatesUsers; 8use Socialite; 9use App\User; 10use Auth; 11use Carbon\Carbon; 12use Session; 13 14class LoginController extends Controller 15{ 16 /* 17 |-------------------------------------------------------------------------- 18 | Login Controller 19 |-------------------------------------------------------------------------- 20 | 21 | This controller handles authenticating users for the application and 22 | redirecting them to your home screen. The controller uses a trait 23 | to conveniently provide its functionality to your applications. 24 | 25 */ 26 27 use AuthenticatesUsers; 28 29 /** 30 * Where to redirect users after login. 31 * 32 * @var string 33 */ 34 protected $redirectTo = RouteServiceProvider::HOME; 35 36 /** 37 * Create a new controller instance. 38 * 39 * @return void 40 */ 41 public function __construct() 42 { 43 $this->middleware('guest')->except('logout'); 44 } 45 46 public function redirectToGoogle() 47 { 48 // Google へのリダイレクト 49 return Socialite::driver('google')->redirect(); 50 } 51 52 public function redirectToFacebook() 53 { 54 // facebook へのリダイレクト 55 return Socialite::driver('facebook')->redirect(); 56 } 57 58 public function facebookCallback() 59 { 60 $fUser = Socialite::driver('facebook')->stateless()->user(); 61 $check_user = User::where(['email' => $fUser->getEmail()])->first(); 62 if($check_user) { 63 Auth::login($check_user); 64 return redirect()->route('home'); 65 } elseif($fUser->getEmail() === null) { 66 $user = new User(); 67 $user->name = $fUser->getName(); 68 Session::put('user', $user); 69 return view('auth.register')->with('say', 'ユーザーのemailを入力してください!'); 70 } else { 71 $user = new User(); 72 $now_time = Carbon::now('Asia/Tokyo'); 73 $user->name = $fUser->getName(); 74 $user->email = $fUser->getEmail(); 75 $user->email_verified_at = $now_time; 76 $user->password = \Hash::make('password'); 77 Session::put('user', $user); 78 return view('auth.address')->with('say', 'ユーザーは入力完了です!次は住所を入力してください!'); 79 } 80 81 } 82 83 public function GoogleCallback() 84 { 85 $gUser = Socialite::driver('google')->stateless()->user(); 86 $check_user = User::where(['email' => $gUser->getEmail()])->first(); 87 if($check_user) { 88 Auth::login($check_user); 89 return redirect()->route('home'); 90 } else { 91 $user = new User(); 92 $now_time = Carbon::now('Asia/Tokyo'); 93 $user->name = $gUser->getName(); 94 $user->email = $gUser->getEmail(); 95 $user->email_verified_at = $now_time; 96 $user->password = \Hash::make('password'); 97 Session::put('user', $user); 98 return view('auth.address')->with('say', 'ユーザーは入力完了です!次は住所を入力してください!'); 99 } 100 101 } 102} 103

予想、怪しいと思うところ。試したこと。
1, $this->sendLoginResponse($request)が上手く処理出来ていない?evalでどこで止まるか確認。
2, sns認証も実装しているのでどこかで処理が被っている??
3, キャッシュの削除、ターミナルとクローム。
4, シークレットウィンドウでの実行。
5, snsでログインし、ログアウトした後にemail,passwordを入力してログインしようとすると入れなくなります。それぞれ別ユーザーです。

vendor\laravel\ui\auth-backend\AuthenticatesUsers.php public function login(Request $request) { $this->validateLogin($request); // If the class is using the ThrottlesLogins trait, we can automatically throttle // the login attempts for this application. We'll key this by the username and // the IP address of the client making these requests into this application. if (method_exists($this, 'hasTooManyLoginAttempts') && $this->hasTooManyLoginAttempts($request)) { $this->fireLockoutEvent($request); eval(\Psy\sh()); return $this->sendLockoutResponse($request); } if ($this->attemptLogin($request)) {         この処理の部分で止まってしまう事をevalで見つけました。 eval(\Psy\sh()); return $this->sendLoginResponse($request); } // If the login attempt was unsuccessful we will increment the number of attempts // to login and redirect the user back to the login form. Of course, when this // user surpasses their maximum number of attempts they will get locked out. $this->incrementLoginAttempts($request); eval(\Psy\sh()); return $this->sendFailedLoginResponse($request); }

どこに原因があるのかわからず止まってしまいました。
5の部分が怪しいと感じますが。。。ログアウトするときに何か処理を加えるとかでしょうか。。

どなたかお分かりになる方いましたらご教授ください、よろしくお願いいたします。
また、この情報も欲しい!と言う事であれば教えていただけると助かります。

laravel7.x

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問