通过电子邮件,密码和其他字段授予Laravel授权

时间:2017-06-13 16:28:20

标签: laravel laravel-5 authorization

开箱即用Laravel通过匹配电子邮件(默认 - 可以覆盖)和密码来授权用户。

是否可以使用3个字段授权用户,例如:

  1. 电子邮件
  2. 密码
  3. ...其中' group'来自用户的一些额外字段'数据库中。

    换句话说,用户可以属于组:1并且可以登录到组:仅1个资源,但不能分组:2个使用他的组:1个凭据。

    如果用户属于group:1且group:2,那么他需要不同的凭据才能登录任何一个组。

    此外,用户可以为两个组使用相同的电子邮件。在这种情况下,它是作为附加标识符的组号。当然密码会有所不同。

    我正在考虑在字段上设置数据库多列索引' id'和' group'这将是一个良好的开端,但我还没有掌握(还)需要使Laravel授权过程对3个字段敏感而不是2个。

    我很感激一些指示。

1 个答案:

答案 0 :(得分:1)

这听起来像是您尝试仅对属于某些群组的数据实现租赁形式。看看这个包:

https://github.com/HipsterJazzbo/Landlord

实际上,您可以向要限制访问的表中添加@Path("/garbage") @Produces(MediaType.APPLICATION_JSON) public class GarbageController { private static final Logger LOG = LoggerFactory.getLogger(GarbageController.class); @PUT @Path("/{params: [\\d,]+}") @Consumes(MediaType.APPLICATION_JSON) @Timed public Response updateGarbage(@PathParam("params") List<PathSegment> params) { LOG.warn("updateGarbage"); return Response.status(Response.Status.OK).build(); } @GET @Path("/{garbageId}") public Response getGarbageById(@PathParam("garbageId") long garbageId) { LOG.warn("getGarbage"); return Response.status(Response.Status.OK).build(); } } 字段,然后使用中间件,对任何数据库查询应用其他group_id子句。例如,这非常适用于按角色检索属于特定用户的数据子集。