微博用户管理(登录)

开发登录API

  1. 【路由层】解析post请求获取userName和password,传递并调用controller层的login函数:src-routes-api-user.js中,routes-api-user.js
  2. 【controller层】创建登录函数,调用service层的getUserInfo函数判断用户是否存在数据库(即是否已登录)controller-user.js
  3. 测试:登录lisi的帐号:测试查看redis查看redis此时刷新页面,http请求头中将带有cookiehttp请求头中将带有cookie

判断已登录状态

  1. 实现功能:进入注册页和登录页之前都会先进行判断,如果已登录就提示“xxx,您已成功登录,请直接访问首页”
  2. 添加获取登录信息的getLoginInfo函数,src-routes-view-user.js中:routes-view-user.js
  3. 调用函数判断是否已登录,并传递前端所需数据:src-routes-view-user.js中,登录路由和注册路由渲染页面时将getLoginInfo函数中返回的isLogin和userName传递到前端供其判断用户是否已登录:routes-view-user.js
  4. 测试:登录后再次访问登录和注册页:登录和注册页

登录验证的中间件

  1. 创建2个登录验证的中间件:一个是给routes-api中的路由使用,一个是给routes-view中的路由使用。middlewares中新建loginChecks.js:loginChecks.js
  2. loginCheck给API做登录验证:未登录时直接返回错误信息
  3. loginRedirect给页面登录验证:未登录时,用户访问各个页面时都将带着url去跳转登录页,登录成功后前端获取带过来的url自动跳转到用户所访问的页面login前端(**ctx.redirect()页面跳转**)
  4. 首页使用中间件:src-routes-index.js中:src-routes-index.js
  5. 测试:访问首页,可看到:测试
  6. /json路由使用中间件:src-routes-index.js中:src-routes-index.js
  7. 测试:访问/json路由,可看到未登录时之间返回错误信息:测试
,