2016.1.11
0からはじめるPHP#72(番外)【認証システムを組み立てたかった】
認証でかなり長いこと詰んでたのですが、今しがたやっと前進したのでその報告をしようと。
認証自体は
このへんでやってるんで、大丈夫だろうと高をくくっていたんですが、なんだか上手く行かなくてですね。
|
Auth::attempt(['email' => $email, 'password' => $password]
|
これが認証のメソッドです。
これ見ると、$emailがデータベースのemailカラムと一致して、パスワードも同様に合ってれば認証されるって思うわけじゃないですか。まぁ実際そうなんですけどね。
|
Auth::attempt(['user_email' => $email, 'password' => $password]
|
なんとこれだと動かないんですよ。
で、格闘した結果何が分かったかっていうと「なくてはならない特定のカラム名」が存在することと特定のカラム名でしか認証できないということです。
今試したらなんか動きました。
一体なんなんだ・・・・・・?いじってる内にどっかのエラーを修正してしまったのか・・・・・・?
狐につつまれた気分ですが
逆に書くことがなくなってしまいました。
あ、そうそう。
updated_atというカラムがないとログアウトできません。というか
ログアウトした時間が勝手に記録されます。
正直要らないと思ったんですが、消す設定を探すのもめんどいのでこのまま。なんかに使えるかもしれませんしね。
ちなみに、今行き詰まっているところとしては・・・・・・
if(Auth::check()){
//ログイン済の場合のみフォーム表示?>
ようこそ!{{$user->user_name}}さん!<br>
<br>
<form id="post_form" action="{{url('post')}}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<textarea class="form-control" id="post" placeholder="つぶやこう"></textarea>
<input type="submit" class="btn btn-default" id="send" value="送信">
</form>
<?php }else{
//未ログイン?>
さあ、{{SITENAME}}をはじめよう!<br>
<a class="btn btn-primary" href="{{url('register_page')}}">新規登録</a>
<br>
<form id="register_form" action="{{url('login')}}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
IDもしくはemail
<input type="text" class="form-control" name="login_key" value="{{old('login_key')}}">
パスワード
<input type="password" class="form-control" name="login_password" placeholder="パスワードを入力して下さい。">
<input type="submit" class="btn btn-default" id="send" value="ログイン">
</form>
<?php }?>
ちょいちょい省略してますが、こんな感じのコードを書きました。
ここで、ログイン後に投稿すると
何故かloginメソッドが呼ばれます。
formのaction値が正しく認識されていないんですね。でも何度ソースを見返しても特に間違いは見つからないんですよ。
こういうバグほんと嫌なんだよー・・・・・・何が原因なんだよー・・・・・・。
と、ずっと格闘していたら原因が分かりました。
postって名前がダメだったらしい。
それでなんでloginが呼ばれるのかは不明ですが、postって名前を使わなかったら良いらしい。
俺の2時間返せよ
と思ったら、上手く行ったのは1回だけで、やっぱりloginページに飛ばされる・・・・・・。
これは
明らかにミドルウェアが干渉してますね。
ただ具体的な経路が意味不明で、Remember me機能とも無関係に発生するのでちょっと調査中です。
まさかログインでこんな詰むとは思わなかったよー・・・・・・。Muselの時はさらさら進んだんだけど何が違うんだろう・・・・・・。
頼む側の態度としては絶対に間違っている。
でも、一人だと闇堕ちしてしまっている。
一人で何とかできないか考えたけど、何をしても出る結論は「女なんて理解できないクソ」「どうせまた裏切られる」「偶然の事故で死にたいなあ」しか出てこない。
誰かに話して解決する問題でもないんだろうけど、一人で考えててもやっぱり仕方ないのかも知れない。
めんどくさがられるかも知れない。ほんとは、わざわざ人を巻き込むことでもないのかも知れない。
でも、このままだと何も分からないままだ。
僕は、女の子の気持ちに寄り添えなくてはいけない。
でなきゃ、僕は一生一人のままだ。生きていく理由が見つからないままだ。
できることなら、もう二度と過ちを繰り返さないこと。
僕自身が、女性を決して離さない、ステキな男性になれれば良いんだ。
自分一人だと、そのためのヒントが得られない。
自分では、自分の長所だと思っていたところを全て否定されてしまったから。
僕は、優しすぎた。あまりにも優しすぎて、刺激がなかったんだろう。
僕は、フレンドリーすぎた。心の距離を縮めるのが早すぎて、距離感を失ってしまった。
僕は、これらは自分の長所だと思っていた。長年かけて、自分のコミュ障を治すため、自分で磨いた武器だった。
それなのに、だめだった。これが全くの逆効果だった。僕がミステリアスな存在であったら、きっともっと知りたいと思ってくれたのかも知れない。でも、知りたいと思う前に教えちゃう。僕はあまりにも性格がオープン過ぎた。
それが本当の原因かは分からない。だから、女性に聞くしかない。
もしかすると、やっぱり顔なのかも知れないし。自分では気づいていない重大な欠陥があるのかも知れない。
自分の優しさは、今まで自分が上手く人と付き合うことができなかったから、どうしても人付き合いが苦手な人の気持ちが分かってしまうことから来ている。
だから、彼女がどんなに感情的でも、理解してあげようとしてしまっていた。自分が、理解されなくて苦しんだことがあったから。人には向き不向きがあることを、知っていたから。
そして、傷つくことの悲しさも知っているつもりだから。だから、サークルの皆に、彼女がナンパに引っかかったなんて話を言おうという気になれない。どんなに理解できなくても、やっぱり後ろ指指される姿を想像すると悲しくなってしまう。
そんな自分の優しさが自分の首を締めているのは分かっているんだが、それでもなんだか気乗りしない。自分がどんなに苦しんでいても、それでもやはり、人の幸せを踏み潰そうというのは、気持ちが悪い。それが、自分と彼女の大きな違いなのかも知れないけど、やはり僕は敢えてこんな話をおおっぴらにしたいとは思えない。
自分のフレンドリーさも、自分の経験から来ている。
僕は人付き合いが苦手だし、人が何考えてるかわかんなくて話しづらいと感じた経験もたくさんある。
だから、自分が何を考えてるかをオープンにし、くだらない冗談を並べて自分の価値を落とすことで、壁を取っ払ってきた。
それぐらいしか、自分に誇れそうなところってなかった。
だから、これが悪影響を与えていたことにショックを隠し切れない。
もう、自分の力だけでは無理だ。
だから、彼女に頼るしかない。めんどくさいって思われていても、僕には君しかいない。
だから、申し訳無さをこらえて、リマインダを送ってみたのです。
めんどくさい男でごめんなさい。でも、期待するのに疲れちゃった。