laravel - laravel 5.6 中使用多租户和多模块结构的身份验证问题
问题描述
在 laravel 5.6 中开发我已经安装了这个包,用于在 laravel 5.6 中实现多租户和多模块系统:1. "artem-schander/l5-modular": "^1.4", 2. "hyn/multi-tenant": "5.2.*",
模块化结构是这样的:
laravel-project/`
app/
└── Modules/
└── Organization/
├── Controllers/
│ └── OrganizationController.php
├── Models/
│ └── Organization.php
├── Views/
│ └── index.blade.php
├── routes
│ ├── api.php
│ └── web.php
└── helper.php
现在我遇到了一个问题,将身份验证用户详细信息提取到组织模块下的控制器中。
使用组织模块下的路由和默认 laravel 路由 (route/web.php) 它是 laravel 中的默认 web.php。
Route::group(['middleware' => 'auth'], function () {
Route::get('dashboard', 'DashboardController@index'); //Return All Users
//Route::get('dashboard', 'DashboardController@generalDashboard'); //Return All Users
Route::get('dashboard/{period}', 'DashboardController@renderDashboard'); //Return All Users
/* Route for Organization*/
Route::get('organization','\App\Modules\Organization\Controllers\OrganizationController@index');
});
组织模块下的路线如下:
Route::group(['module' => 'Organization', 'middleware' => ['web','auth'], 'namespace' => 'App\Modules\Organization\Controllers'], function() {
Route::resource('organization', 'OrganizationController');
});
和组织模块下的组织控制器
namespace App\Modules\Organization\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
//use Illuminate\Support\Facades\Auth;
use Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Mail;
use App\Repositories\Organization\OrganizationRepositoryInterface;
use App\Models\Country;
use App\Models\State;
use App\Models\City;
use Validator;
use Redirect;
use Session;
use App\Http\Requests\OrganizationStoreRequest ;
use App\Traits\Custom\CustomResponseTrait ;
class OrganizationController extends Controller
{
use CustomResponseTrait ;
private $organizationRepo ;
public function __construct(OrganizationRepositoryInterface $organizationRepository){
$this->organizationRepo = $organizationRepository ;
//$this->middleware('auth');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
dd(Auth::user()) ;
$organizations = $this->organizationRepo->all();
return view('Organization::test.index')->with('organizations', $organizations);
}
dd(Auth::user()) ; 它将返回 null ,但 dashboardControiller 在 Laravel 结构的默认 Controller 目录下运行良好。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use App\Modules\Psession\Models\Psession;
use App\Modules\Product\Models\Product;
use App\Modules\Comment\Models\Comment;
use App\Modules\ProductState\Models\ProductState;
use App\Modules\Image\Models\Image;
use App\Modules\Copywriting\Models\ProductCopywritingsession;
use App\Modules\Ounass\Models\Channel;
use Cache;
class DashboardController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct(Product $product)
{
$this->middleware('auth');
$this->product = $product;
}
我应该怎么办?
解决方案
在网络中间件会话开始,所以你还需要添加“网络”中间件
替换下面的行
Route::group(['middleware' => 'auth'], function () {
和
Route::group(['middleware' => ['web','auth']], function () {
推荐阅读
- java - 如何将分隔线添加到我的下拉列表(微调器)?
- mysql - 为给定 id 中的所有行复制列中的值
- php - 如何在物化中使用卡片每行显示 3 列
- php - 在 Woocommerce 购物车结帐和订单中禁用特定产品的项目名称链接
- haskell - 是否可以通过以下方式比较haskell中的“(+),(-)”等运算符?
- algorithm - 如何使用递归在 Scala 中制作反向波兰符号?
- python - 从文件中读取时一次全部跳过空间
- c - 生产者 消费者与消费者陷入僵局
- reactjs - 在移动视图上遇到 CSS 格式问题
- windows - 我可以在 Windows 7 中禁用看门狗定时器吗?