Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在LARAVEL中,从自定义URL获取用户名时,是否可以将用户标记为已登录?_Php_Laravel - Fatal编程技术网

Php 在LARAVEL中,从自定义URL获取用户名时,是否可以将用户标记为已登录?

Php 在LARAVEL中,从自定义URL获取用户名时,是否可以将用户标记为已登录?,php,laravel,Php,Laravel,我目前正在做一个网站,其中的登录URL是不同的,并显示根据分配给他们的项目的数据 例如,用户A只能访问www.example.com/projects/proj1。这是用户A的主页,如果他登录,他将使用www.example.com/projects/proj1/login 而用户B只能访问www.example.com/projects/proj2。这是用户B的主页,如果他登录,他将使用www.example.com/projects/proj2/login 请注意,proj1和proj2因数

我目前正在做一个网站,其中的登录URL是不同的,并显示根据分配给他们的项目的数据

例如,用户A只能访问
www.example.com/projects/proj1
。这是用户A的主页,如果他登录,他将使用
www.example.com/projects/proj1/login

用户B只能访问
www.example.com/projects/proj2
。这是用户B的主页,如果他登录,他将使用
www.example.com/projects/proj2/login

请注意,proj1proj2因数据库而异。因此,我必须首先检查这些项目是否已在数据库中注册

我想有一条这样的路线

对于web.php

Route::get('/projects/{project_name}', 'PageHandler\CustomPageController@projects');
Route::get('/projects/{project_name}/login', 'PageHandler\CustomPageController@login');
Route::put('/projects/{project_name}/auth/{user}', 'PageHandler\TestUserPageController@auth');
然后我的customepagecontroller.php如下所示

class CustomPageController extends Controller
{

    public function projects(string $projectName)
    {
        if (auth()->user() == null) 
            return redirect('/projects'. '/' . $projectName . '/login');
    }

    public function login(string $projectName)
    {
        return view('login')->with('projectName', $projectName);
    }

    public function auth(Request $request, string $projectName)
    {
        $username = $request->username;
        
        //How to set $username as logged in?

        // rest of the code to show the home page after authentication
    }
}
login.blade.php基本上就像一个表单,提交用户名和密码,并使用URL的字符串参数调用
CustomPageController
auth

因此,我的问题是如何将$username设置为已使用Laravel的身份验证登录?还是应该创建自定义身份验证控制器

现在,这是我唯一想到的让用户登录到不同URL的方法。如果你有更好的方法,请告诉我


谢谢大家!

如果您只想限制用户可以访问的项目,我认为不需要使用两个不同的登录URL(如果您需要不同URL的原因,请更正我),相反,您只需从数据库中查找用户所属的项目即可

对于身份验证,Laravel允许您以非常简单的方式实现身份验证,您可以参考。使用Laravel的身份验证将比编写自己的身份验证更容易、更安全,即使它提供的默认功能可能与您想要实现的功能不完全相同,您仍然可以添加自己的东西,这仍然比从头开始实现要容易得多

至于将用户设置为使用Laravel的身份验证服务登录,您可以使用
Auth::login($user)。这里,
$user
必须是
illumb\Contracts\Auth\Authenticatable
契约的实现。有关更多详细信息,请参阅文档的第页