laravel 6登录成功,但重定向到登录页面

问题描述 投票:0回答:1

enter image description here

我的环境是MACOS上的MAMP服务器。

LoginController.php

public function authenticate(Request $request)
    {
        $this->validate($request, [
            'email'   => 'required|email',
            'password' => 'required|min:8'
        ]);

        if (Auth::guard('web')->attempt(['email' => $request->email, 'password' => $request->password,'isactive'=>true], $request->get('remember'))) {

            try{
                $isAdmin = auth()->user()->isAdmin;

                $data = Permission::select('route','retailer_access','distributor_access')
                ->where('method','GET')
                ->get();
                $urlData = [];
                foreach($data as $url){
                    $myurl['route'] = $url['route'];
                    switch($isAdmin){
                        case 0:
                            $myurl['access'] = $url['retailer_access'];
                            break;
                        case 1:
                            $myurl['access'] = $url['distributor_access'];
                            break;
                        case 2:
                            $myurl['access'] = true;
                            break;
                    }
                    array_push($urlData,$myurl);
                }
                $is_admin = false;
                if($isAdmin == 2){
                    $is_admin=true;
                }

                $arr = ['urlData'=>$urlData,'is_admin'=>$is_admin];
                session($arr);
                return redirect()->intended('/home');
            }
            catch(Exception $e){
                return back()->with('failed','Invalid email or password.')
                    ->withInput($request->only('email'));
            }

        }
        return back()->with('failed','Invalid email or password.')
                    ->withInput($request->only('email'));
    }

HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('permission');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {
        return view('home');
    }
}

我在会话中设置的以下数组。

Array (
    [0] => Array ( [route] => setting/servicetype/add [access] => 1 )
    [1] => Array ( [route] => setting/servicetype [access] => 1 ) 
    [2] => Array ( [route] => setting/api/edit/{id} [access] => 1 )
    [3] => Array ( [route] => setting/api/add [access] => 1 )
    [4] => Array ( [route] => setting/api [access] => 1 )
    [5] => Array ( [route] => setting/carrier [access] => 1 )
    [6] => Array ( [route] => wallet/details/{id?} [access] => 1 )
    [7] => Array ( [route] => wallet [access] => 1 )
    [8] => Array ( [route] => permission [access] => 1 )
    [9] => Array ( [route] => home [access] => 1 )
    [10] => Array ( [route] => user/edit/{id} [access] => 1 )
    [11] => Array ( [route] => user/add [access] => 1 )
    [12] => Array ( [route] => user [access] => 1 )
    [13] => Array ( [route] => about [access] => 1 )
    [14] => Array ( [route] => logout [access] => 1 )
    [15] => Array ( [route] => password/confirm [access] => 1 )
    [16] => Array ( [route] => password/reset/{token} [access] => 1 )
    [17] => Array ( [route] => password/reset [access] => 1 )
    [18] => Array ( [route] => register [access] => 1 )
    [19] => Array ( [route] => login [access] => 1 )
    [20] => Array ( [route] => / [access] => 1 )
    [21] => Array ( [route] => api/user [access] => 1 )
    [22] => Array ( [route] => _ignition/styles/{style} [access] => 1 )
    [23] => Array ( [route] => _ignition/scripts/{script} [access] => 1 )
    [24] => Array ( [route] => _ignition/health-check [access] => 1 )
    [25] => Array ( [route] => settings/edit/{id} [access] => 1 )
)

我的环境中的会话元素是否有任何限制?当会话元素小于25时,它可以工作,但是当我再添加一个键值时,就会发生此问题。请帮助我了解这里的问题。

php laravel macos mamp laravel-6
1个回答
0
投票

我找到了解决此问题的方法。我正在使用cookie会话驱动程序,所以我将数组$ arr(在LoginController.php中)转换为json_ecoded字符串。

© www.soinside.com 2019 - 2024. All rights reserved.