当前位置: 首页 > news >正文

大连企业建站系统模板网站上资源截图怎么做

大连企业建站系统模板,网站上资源截图怎么做,源代码开发网站,网站建设完提交百度导言 在用C#搞完个后端后想用若依的前端做对接#xff0c;不过很久没搞过若依了#xff0c;想趁这个二次开发的过程记录熟悉一下登录的过程 过程 验证#xff0c;在permission.js的路由守卫#xff0c;这里在用户发起api请求时会验证用户的请求是否有token#xff0c;对…导言 在用C#搞完个后端后想用若依的前端做对接不过很久没搞过若依了想趁这个二次开发的过程记录熟悉一下登录的过程 过程 验证在permission.js的路由守卫这里在用户发起api请求时会验证用户的请求是否有token对应访问的权限并进行相应的拦截和跳转 router.beforeEach((to, from, next) {NProgress.start()//如果有tokenif (getToken()) {to.meta.title store.dispatch(settings/setTitle, to.meta.title)/* has token*///如果在登录if (to.path /login) {next({ path: / })NProgress.done()} else {//不在登录的话根据用户角色动态生成路由表if (store.getters.roles.length 0) {isRelogin.show true// 判断当前用户是否已拉取完user_info信息store.dispatch(GetInfo).then(() {isRelogin.show falsestore.dispatch(GenerateRoutes).then(accessRoutes {// 根据roles权限生成可访问的路由表router.addRoutes(accessRoutes) // 动态添加可访问路由表next({ ...to, replace: true }) // hack方法 确保addRoutes已完成})}).catch(err {store.dispatch(LogOut).then(() {Message.error(err)next({ path: / })})})} else {next()}}} else {// 没有tokenif (whiteList.indexOf(to.path) ! -1) {// 在免登录白名单直接进入next()} else {console.log(//如果在登录);next(/login?redirect${encodeURIComponent(to.fullPath)}) // 否则全部重定向到登录页NProgress.done()}} }) 1.获取验证码图片展示 从登录页面开始先调后端拿验证码图片和从cookie拿到之前保存的用户登录信息 然后在api定义请求后端接口的方法格式与所要传递的参数这里不需要传token //在api/login // 获取验证码 export function getCodeImg() {return request({url: /api/Auth/Code,headers: {isToken: false},method: get,timeout: 20000}) } 接到后端返回验证码(Base64 编码)后前端对应显示在页面上 img :srccodeUrl clickgetCode classlogin-code-img/ ... getCode() {//调用拿验证码getCodeImg().then(res {console.log(res,验证码);this.captchaEnabled res.statusCode 200 ? true : res.captchaCode;if (this.captchaEnabled) {console.log(进来了,res.data.captchaGUID)this.codeUrl res.data.captchaCode;this.loginForm.uuid res.data.captchaGUID;}});}, 验证码大概长这样 {captchaImage: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA... } 2.登录提交,存token 用户点击提交表单(登录)后前端将所需的东西传回后端验证具体是先调store中的登录方法这样好存token //login.vue handleLogin() {this.$refs.loginForm.validate(valid {if (valid) {this.loading true;if (this.loginForm.rememberMe) {Cookies.set(username, this.loginForm.username, { expires: 30 });Cookies.set(password, encrypt(this.loginForm.password), { expires: 30 });Cookies.set(rememberMe, this.loginForm.rememberMe, { expires: 30 });} else {Cookies.remove(username);Cookies.remove(password);Cookies.remove(rememberMe);}//调后端登录接口 先是从持久化那调//然后在那边调完就存token 再把登录成功的信息 传过来this.$store.dispatch(Login, this.loginForm).then(() {console.log(登录处理成功!);this.$router.push({ path: this.redirect || / }).catch((){});}).catch(() {this.loading false;if (this.captchaEnabled) {this.getCode();}});}});} 3.用户信息持久化 存完之后在handleLogin最后跳转路由之前会在路由守卫那进到if (store.getters.roles.length 0)即已经有token和不在登录界面。这时需要用户角色来动态生成路由与存用户的信息所以还要请求后端拿到用户的详细信息 同理也是先调store中的相应方法在通过这个来调请求后端的方法 //先调这个 在...src\store\modules\user.js // 获取用户信息 GetInfo({ commit, state }) {return new Promise((resolve, reject) {//在这里调请求后端的方法getInfo().then(res {//成功后做持久化console.log(用户信息:,res);const user res.dataconst avatar (user.avatarUrl || user.avatarUrl null) ? require(/assets/images/profile.jpg) : process.env.VUE_APP_BASE_API user.avatarUrl;if (res.roles res.roles.length 0) { // 验证返回的roles是否是一个非空数组commit(SET_ROLES, res.roles)commit(SET_PERMISSIONS, res.permissions)} else {commit(SET_ROLES, [ROLE_DEFAULT])}commit(SET_ID, user.userId)commit(SET_NAME, user.userName)commit(SET_AVATAR, avatar)resolve(res)}).catch(error {reject(error)})})}, // 获取用户详细信息 export function getInfo() {return request({headers: {isToken: true},url: /api/Auth/GetUserInfo,method: get}) } 4.生成动态路由菜单 请求后端获得菜单树在前端根据用户角色(管理员和普通用户)将其转换为菜单 // 生成路由 在src\store\modules\permission.jsGenerateRoutes({ commit }) {return new Promise(resolve {// 向后端请求路由数据getRouters().then(res {const sdata JSON.parse(JSON.stringify(res.data))const rdata JSON.parse(JSON.stringify(res.data))const sidebarRoutes filterAsyncRouter(sdata)const rewriteRoutes filterAsyncRouter(rdata, false, true)const asyncRoutes filterDynamicRoutes(dynamicRoutes);rewriteRoutes.push({ path: *, redirect: /404, hidden: true })router.addRoutes(asyncRoutes);commit(SET_ROUTES, rewriteRoutes)commit(SET_SIDEBAR_ROUTERS, constantRoutes.concat(sidebarRoutes))commit(SET_DEFAULT_ROUTES, sidebarRoutes)commit(SET_TOPBAR_ROUTES, sidebarRoutes)resolve(rewriteRoutes)})})} 之后路由守卫放行进到主页.. 结语 登录过程不是很复杂主要就是路由守卫的一系列验证筛选把不合规范的请求和路由跳转都筛掉了。 正常登录流程大概是验证码图片获取登录提交token用户信息的持久化和菜单生成...
http://www.w-s-a.com/news/817078/

相关文章:

  • 夏天做哪些网站能致富做网站怎么每天更新内容
  • 个人网站的设计与开发网站建设流程中哪些部分比较重要
  • 招聘网站如何建设中国计算机网络公司排名
  • 工信部网站备案规定厦门在线制作网站
  • 商丘网站公司智联招聘手机app下载
  • 江西专业南昌网站建设中国专业的网站建设
  • 物流企业网站建设方案招标网站有哪些
  • 网站建设服务中企动力建筑工程网络进度计划备注填写范例
  • 电子商务网站开发与建设试卷php网站开发专业
  • 运城网站制作路90江苏省网站备案系统
  • 唐山做企业网站实体门店管理系统
  • 网站优化推广教程深圳网站建设世纪前线
  • 网站建设专家哪家好兰州网络推广执行
  • 广东住房和城乡建设厅网站王芃增加网站收录
  • 北京网站建设手机app电子商务网红营销的劣势
  • 网站 营销型wordpress获取4条文章标题
  • 浦东区建设工程监督网站建立全国统一的突发事件信息系统
  • 做网站需要基础吗重庆市造价信息网
  • 我要建设公司网站大连培训网站建设
  • 网站建设校长信箱设计方案小程序报价开发
  • 电子网站建设ppt模板营销策划方案怎么写?
  • 什么网站收录排名最高济南能源建设网站
  • 深圳移动网站建设公司价格桂林做网站哪家公司好
  • 互联网网站名字网站合作建设合同
  • 舟山高端网站设计广州优化排名推广
  • 哪个网站做免费广告好上海人才网站
  • cn域名做网站竞价推广代理
  • 省建设干部培训中心网站网站地图1 500 怎么做
  • 制作一个网站需要哪些人网站建设经营服务合同
  • 山东省住房和城乡建设厅官方网站网易发布广州