P28:后台管理系统开发07-service登录接口编写
通过上几节的开发我们已经有了最基础的后台页面,接下来就可以作后台登录的业务逻辑制作了。这节就带大家制作一下中台的登录接口。
新建 main.js 文件
在/service/app/controller/admin文件夹下新建一个main.js文件,后台用的接口就都写在这个文件里了,当然你也可以写多个文件,进一步详细划分。
建立好文件后,我们编写下面代码:
'use strict';
const Controller = require('egg').Controller
class MainController extends Controller{
async index(){
//首页的文章列表数据
this.ctx.body='hi api'
}
}
module.exports = MainController
有了文件主体,下一步可以制作对应的路由了。
中台路由的制作
在/service/router文件夹下,新建立一个admin.js文件,用于配置后台接口文件的路由。 路由的代码如下:
module.exports = app =>{
const {router,controller} = app
router.get('/admin/index', controller.admin.main.index)
}
路由配置好以后还需要再总的router.js里进行配置,代码如下:
'use strict';
/**
* @param {Egg.Application} app - egg application
*/
module.exports = app => {
require('./router/default')(app)
require('./router/admin')(app)
};
这时候路由就起作用了,然后我们运行命令npm run dev(前提是你打开了本地 MySQL 数据库,不会这个的去我前面教程看具体本地如何见一个数据库)在服务端打开服务,到浏览器预览一下,如果可以顺利在页面输出hi api,说明一切正常了。
路径为:http://localhost:7001/admin/index/
登录方法的编写
然后我们在/service/controller/admin/main.js文件里编写验证登录的方法,代码如下:
//判断用户名密码是否正确
async checkLogin(){
let userName = this.ctx.request.body.userName
let password = this.ctx.request.body.password
const sql = " SELECT userName FROM admin_user WHERE userName = '"+userName +
"' AND password = '"+password+"'"
const res = await this.app.mysql.query(sql)
if(res.length>0){
//登录成功,进行 session 缓存
let openId=new Date().getTime()
this.ctx.session.openId={ 'openId':openId }
this.ctx.body={'data':'登录成功','openId':openId}
}else{
this.ctx.body={data:'登录失败'}
}
}
代码解读:既然是登陆肯定要验证后台用户名和密码,ctx.request.body传一个userName和password,password是我自己使用,所以没必要用MD5加密方式,虽然更安全但是很麻烦,这里我就直接把password取过来进行使用。有了userName和password我就可以写sql查询语句了,这个表我们会在后面文章中给大家做出来,通过sql语句我们可以得到一个结果res,这个结果要用await进行等待因为这个结果要从数据库进行查就用this.app.mysql.query。
然后我们判断一下res的长度,如果大于0,就说明找到了这条登录记录,即登陆成功了,这是我们要做一个openId传到前台,这个openId就是现在的时间戳,然后做一下ctx筛选,把我们登录状态存到session中,存的就是openId。
登录成功了就要返回了,返回ctx.body它是一个对象,一个是提示登陆成功,一个是时间戳openId,这时前台有了时间戳后台也有时间戳,就不用我们再去查询数据库,从而节省很多资源。
登陆失败,我们也要返回一个登录失败状态this.ctx.body={data:'登录失败'},就不需要传入 openId 了。
当然到这儿你还不能看,我们需要把表给他建立起来,打开数据库管理工具,新建一个admin_user
表,打开表添加字段userName、password,类型 VarChar,其他不改,保存。然后分别为这两个字段添加值userName: mybj123,password:123456。
为了防止大家疲劳学习,本文就先到这里,下节我们结合前台实现管理员登录的操作。
以上关于P28:后台管理系统开发07-service登录接口编写的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » P28:后台管理系统开发07-service登录接口编写

微信
支付宝