欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

php框架laravel:[14]用户登录2

用上次的用户注册页面,我们先注册一个用户,例如admin来管理之前的文章。

  1. 设置必须登陆

    在articlesController.php设置ArticlesController类的一些管理方法如create,edit和delete,必须是登陆后的用户才能访问。在类构造函数__contruct里面用beforeFilter设置'auth'验证,并用except排除不用限制的index和show方法。代码如下:

  2. 登陆路由

    使用上面这句代码,laravel内置的方法,会将没登陆的用户转向到 login 路由对应页面。我们先在 route.php 设置登陆相关的路由,显示登陆页面,并验证用户输入的登录信息。

  3. 登陆页面

    根据路由设置,在路由类usersController里新建login方法。显示登陆页面视图文件。

    在app/views/users下新建 login.blade.php 视图文件,输入代码:

    注意

    1、$errors->has()是为了显示错误信息

    2、Form::open 里 url 将数据提交到 login 路由对应的页面

    3、用户登录验证密码用的是nickname,也可以用其他字段如 email 等。

  4. 验证登陆

    根据路由设置,在路由类usersController里新建dologin方法。用 Auth::attempt 来检查输入的内容是否符合数据库里面的记录。代码如下:

    1、Auth::attempt 输入的两个参数,第一个是个函数,key 和 value 分别对应数据库users表字段名和对应的输入值。第二个参数是是否选择“remember_me”这个选项。

    2、Auth::attempt 返回true 说明验证通过。 用Redirect::intended() 方法可已经将页面转向登陆前的页面。里面输入的参数是该页面无效时的备用地址。

  5. 管理菜单

    登陆后的用户可以进行文章新建,修改和登陆的操作。对应的菜单也要设置到登陆后才显示。判断是否登陆的方法是 Auth::check() 。 在 app/views/articles/index.blade.php 对应位置 修改代码,如红线所示:

  6. 登陆、登出菜单

    在index.blade.php 等页面可以根据登陆状态显示“登陆”或者“退出登录”链接。判断登陆用的Auth::check(),生成链接用的是 link_to_route()函数。

  7. 更正路由


    link_to_route的第一个参数是路由的名称。这需要我们修改已有的路由,添加名称。并添加退出登录的路由。

    注意添加红线的地方,as对应的就是路由的名称,uses对应的是控制器方法。

  8. 退出登录

    根据路由设置,在路由类usersController里新建退出登录的logout方法,代码:

    注意退出登陆的具体方法 Auth::logout()

  9. 最终页面

    现在访问index.php/articles/create等需要验证的页面,如果没有登陆,会自动跳转到登陆页面,如果登陆成功会自动返回要访问的页面。

来自  https://jingyan.baidu.com/article/ab69b270a375222ca6189f67.html

普通分类: