在一次小小的头痛之后,我让Tank Auth在我的网站上完美地运行。然而,它通过auth
控制器中的功能完成所有工作,从而显示site.com/auth/login
、site.com/auth/register
等路径。
我希望能够处理所有与登录和注册/激活相关的功能,而无需向用户显示任何域根(www.site.com
(。最好的方法是什么?
即使我将auth
控制器设置为默认控制器,它也只运行索引函数(当然(,然后重定向到/auth/login/
。
请记住,我是CI的新手,所以可能有一种我不知道的简单方法。
我不记得我使用的是什么版本的CI,但我不到几周前就下载了它,所以它是最新的。与Tank Auth相同。
更新:
我将条目添加到routes.php
文件中,这样至少URL的/auth
部分不再存在:
$route['login'] = '/auth/login';
$route['register'] = '/auth/register';
$route['forgot_password'] = '/auth/forgot_password';
$route['reset_password/(:any)/(:any)'] = '/auth/reset_password';
$route['activate/(:any)/(:any)'] = '/auth/activate';
$route['reset_email/(:any)/(:any)'] = '/auth/reset_email';
所有的视图/电子邮件/链接都能正常工作,但我不再收到任何与操作相关的消息。例如,当请求重置密码时,在输入电子邮件后,我通常会收到一条消息,说要检查我的电子邮件。或者,当我注册时,我会收到一条消息,说我需要通过电子邮件激活。。。等等。我不太明白为什么我不再收到这些信息了。
根据发布问题的更新中提到的设置路线为我的原始问题提供了一个可接受的解决方案,但随后带来了丢失消息的问题(也提到了(。我发现这是由于消息被设置为会话flashdata,在下一个服务器请求后会被清除。重新路由必须导致闪存数据清除。
我通过将消息设置为常规会话用户数据而不是flash数据来解决这个问题,然后在显示后手动清除它。
这似乎是一个可以接受的解决方案。