用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1267|回复: 4
收起左侧

[HELP] 请问CI怎么控制某些方法需要检查用户是否已登录?

[复制链接]
发表于 2016-10-31 19:07:37 | 显示全部楼层 |阅读模式
很久之前用tornado写过网站,记得那时候因为是python写的,好像可以通过给某些方法加上修饰符的方式,使得用户在访问该方法的时候会自动检测该用户是否已登录。请问CI这边怎么做这种设置呢?

需求:
现在已经写了登录接口,在session中记录该用户已登录。在写其他方法的时候,发现每次都要检查session中用户是否已登录,就算将这一块独立成方法,感觉还是不够简洁,是否有方法可以设置某些请求是需要检测用户是否已登录的?
发表于 2016-10-31 23:13:33 | 显示全部楼层
一般来说可以在控制器的构造函数里判断。
 楼主| 发表于 2016-11-1 14:12:23 | 显示全部楼层
Hex 发表于 2016-10-31 23:13
一般来说可以在控制器的构造函数里判断。

是不是每次用户请求,都会经过控制器重新创建,然后执行的过程?比如我有个控制器user,里面有方法login,setinfo等。是不是每次请求都会经过user的构造函数,然后调用对应方法?如果写在构造函数怎么判断具体哪个方法是需要判断的?
 楼主| 发表于 2016-11-1 14:16:02 | 显示全部楼层
Hex 发表于 2016-10-31 23:13
一般来说可以在控制器的构造函数里判断。

我这边比如对setinfo方法加了两个参数name,age,没有设置默认值。然后用户访问的时候如果没有带这两个参数的话会返回一个报错信息给浏览器,怎么将这部分信息截掉输出到别的地方呢?因为这些东西不想暴露给用户。
发表于 2016-11-2 00:10:15 | 显示全部楼层
liaow10 发表于 2016-11-1 14:12
是不是每次用户请求,都会经过控制器重新创建,然后执行的过程?比如我有个控制器user,里面有方法login ...

是的,构造函数每次请求都会执行。

具体的代码你可以参考一些开源项目,一句话说不清。

本版积分规则