首页 文章

子域上的Laravel注册和登录页面

提问于
浏览
0

我在Laravel 5.3中创建了一个网站,它有两个不同的注册入口点,这些入口点需要是子域名 .

我已经设置了两条路线,但我有点失落,我将为两个子域设置Auth :: routes() .

一条路线将用于注册并支付每月订阅费用的用户,而另一条路线将不会附加订阅费 .

作为网站说明:这两个注册表单目前是相同的,但可以添加一些字段,而不是基本的用户名/密码字段(想想姓名,姓氏等) .

2 回答

  • 1

    路由组件中有一个子域功能:

    路由组也可用于处理子域路由 . 可以像路由URI一样为子域分配路由参数,允许您捕获子域的一部分以供路由或控制器使用 . 可以使用组属性数组上的域密钥指定子域:

    Route::group(['domain' => '{account}.myapp.com'], function () {
        Route::get('user/{id}', function ($account, $id) {
            // your code
        });
    });
    

    https://laravel.com/docs/5.3/routing#route-group-sub-domain-routing

  • 1

    如果订阅用户和非订阅用户在同一个表中,您可以手动验证用户身份(请参阅docs):

    if (Auth::attempt(['email' => $email, 'password' => $password])) {
      // The user is logged in
    }
    

    这个 Auth:attempt 方法有一个发送更多参数的选项:

    if (Auth::attempt(['email' => $email, 'password' => $password, 'subscribed' => 1])) {
        // The user is a subscriber and logged in
    }
    

    您需要在数据库中添加一个额外字段,以显示用户是否已订阅( subscribed ),并且您应该通过两个不同的注册页面填写1或0 .

    namesurname 字段应该在您的数据库中 nullable ,因此填充它们是可选的 .

相关问题