各位大神好 小弟又來問問題了
小弟自己建立了一個 Middleware
MemberMiddleware.php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class MemberMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {   
        if (!Auth::guard('member')->check()) {
            return redirect(Route('index'));
        }
        return $next($request);
    }
}
然後自己建立了登入跟註冊的方法
登入
public function login(Request $request){
     
        $member = Accounts::where("login",$request->account)->first();
        if($member ==null)
            return view('login',['error'=>1]);
        if($member->password != $request->password)
            return view('login',['error'=>1]);
        
        $auth = $member->auth;
        
        if($auth==null){
           $auth = new AccountAuth;
           $auth->account =$member->login;
           $auth->save();
        }
      
        if($auth->isactive ==0)
            return view('login',['error'=>2]);
        Auth::guard('member')->login($member);
        
        return redirect(Route('memberIndex'));
    }
註冊後登入
public function signup(Request $request){
        $request->validate([
            'account' => 'required|min:4|max:16',
            'password' => 'required|min:4|max:16' ,
        ]);
        
        $member = new Accounts();
        $member->login = $request->account;
        $member->password = $request->password;
        $member->save();
        $auth = new AccountAuth();
        $auth->account =$member->login;
        $auth->save();
        Auth::guard('member')->login($member);
        //dd(Auth::guard('member')->check());
        
        return view('member.signupSuccess');
    }
route 用上面建立的middleware來檢查是否登入
Route::prefix("member")->middleware("member")->group(function(){
    Route::get('/',"MemberLoginController@home")->name("memberIndex"); 
});
用登入的方法登入之後 進到member group 底下的頁面沒有問題
但是用註冊完成的登入 進到member group 底下的頁面就會被middleware踢回首頁
註冊完成之後檢查登入的狀態是得到true 但是換頁之後就會變成false
不知道有沒有大大遇到過這個問題?該怎麼解決呢?
我不知道你登入做了甚麼動作,
一般來說登入的方式是透過Cookie或Session,
有人說Session是比較安全.
小魚大大 登入是用laravel的原生方法登入
Auth::guard('member')->login($member);
有試著去看她原本的code 是用Session沒錯 我的問題是 再註冊跟登入都是用上面那一行code做登入 怎會有不一樣的結果QQ
我猜,
你的 $member 可能少了什麼?
可以考慮重新從資料庫抓資料,
像登入時那樣?
其實如果重複的動作有時候可以寫個function,
不過看起來Code不多也可以先不用.