PHP:为用户定制页面登陆

时间:2012-12-27 21:40:10

标签: php authorization url-routing laravel

我正在构建一个应用程序,我的客户希望实现具有组权限的基本身份验证系统。一切都好。

我想解决的问题是,他希望能够在每个用户组登录时为其设置默认登陆网址。他希望通过表单执行此操作,因此无法进行硬编码。

例如:Administratror的默认网址为

  

的myapp /仪表板

而作家将是

  

的myapp /写

首先,我想为所有网址创建表并将它们连接到groupPermissions表,但它看起来有点多余。

我的应用程序是使用Laravel PHP Framework构建的。

问题:解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

这取决于您希望系统的灵活性。如果要在管理面板中更改URI路径,那么将URL存储在某种配置中并在登录时加载它们就可以了。

对于我认为你想要的东西,我会将组中的URI定义为常量:

<?php

class Group extends Eloquent {
    const ADMIN_URI = 'myapp/dashboard'; // Could also be named routes.
    const WRITER_URI = 'myapp/write';
}

然后你可以登录用户并获取他们的权限组,然后在登录控制器中进行这样的检查:

if(defined($redirectUri = sprintf('Group::%s_URI', strtoupper($groupName))) {
    return Redirect::to(constant($redirectUri));
}

或类似的东西:

switch(strtolower($group)) {
    case 'admin':
        return Redirect::to(Group::ADMIN_URI);
        break;
    case 'writer':
        return Redirect::to(Group::WRITER_URI);
        break;
    default:
        return Redirect::to('homepage');
        break;
}

这真的是一个意见问题。您应该关注的唯一问题是如何存储URI路由并统一访问它们的集中位置。