学成在线 第1天 讲义-项目概述 CMS接口开发 1 项目的功能构架 1.1 项目背景 受互联网+概念的催化,当今中国在线教育市场的发展可谓是百花齐放.如火如荼. 按照市场领域细分为:学前教育.K12教育.高等教育.留学教育.职业教育.语言教育.兴趣教育以及综合平台,其中,职业教育和语言教育的市场优势突出. 根据Analysys易观发布的数据显示,预计2019年中国互联网教育市场交易规模将达到3718亿元 人民币,未来三年互联网教育市场规模保持高速增长. 学成在线借鉴了MOOC(大型开放式网络课…
cms和课程的微服务重启 从数据库内找一条数据 进入到了断点 拼装课程信息 ,然后进行远程调用 抛出异常 可能是开了两个cms服务的事,负载均衡 到了另外一个服务里面 ,关掉一个 把02关掉,重启cms01 eureka服务也重启下,因为刚才关掉了一个cms的服务 如果要远程调用,需要增加无参构造方法.所以必须在这里个里面增加一个无参的构造方法 再次重启 课程的服务 远程调用后页面返回了null 在cms服务里面加断点测试 更新的时候id为null了. cmsPage这个对象为空了 这里变量写错…
4 前端集成认证授权 4.1 需求分析 截至目前认证授权服务端的功能已基本完成,本章实现前端集成认证授权功能. 前端集成认证授权功能需要作如下工作: 1.前端页面校验用户的身份,如果用户没有登录则跳转到登录页面 2.前端请求资源服务需要在http header中添加jwt令牌,资源服务根据jwt令牌完成授权. 哪些功能需要前端请求时携带JWT? 用户登录成功请求资源服务都需要携带jwt令牌,因为资源服务已经实现了jwt认证,如果校验头部没有jwt则会认为 身份不合法. 前端携带jwt访问网关,网…
5.3 CMS添加页面接口 cms服务对外提供添加页面接口,实现:如果不存在页面则添加,否则就更新页面信息. 此接口由课程管理服务在课程预览时调用. 接口方法.:页面没有就添加.有了更新数据 之前的接口定义的直接就是新增 定义api接口 所以建议单独定义保存页面的接口 实现接口 然后在Service内实现这个接口 页面有一个页面索引是 pageName+webPath+siteId组成 结束…
5.2 CMS页面预览测试 CMS已经提供了页面预览功能,课程预览功能要使用CMS页面预览接口实现,下边通过cms页面预览接口测试课 程预览的效果. 1.向cms_page表插入一条页面记录或者从cms_page找一个页面进行测试. 注意:页面配置一定要正确,需设置正确的模板id和dataUrl. 站点id用课程详情的这个站点id { "_id" : ObjectId("5b3469f794db44269cb2bff1"), "_class" :…
5 课程预览功能开发 5.1 需求分析 课程预览功能将使用cms系统提供的页面预览功能,业务流程如下: 1.用户进入课程管理页面,点击课程预览,请求到课程管理服务 2.课程管理服务远程调用cms添加页面接口向cms添加课程详情页面 3.课程管理服务得到cms返回课程详情页面id,并拼接生成课程预览Url 4.课程管理服务将课程预览Url给前端返回 5.用户在前端页面请求课程预览Url,打开新窗口显示课程详情内容 这是页面 预览的接口 静态化,然后把数据返回给浏览器 获取数据.获取模板,然后静态化…
携带JWT授权 登陆后jwt已经存到了sessionStorage里面 当进行微服务的请求就要携带令牌.我们在拦截器里面做文章. 在axios的intercepters拦截器上 手工的给这个课程 造一个图片的数据 刷新页面图片就有了.图片不显示的原因是因为图片的服务没有起来. 跟踪请求,在请求的时候把jwt带上了 点击课程计划 就没有权限 没有权限 给用户一个提示 请求后的拦截器 结束…
把下面赋值到nginx中 前端的服务需要配置一下 重启nginx 启动教学管理的前端 没有登陆直接就进来教学管理的后端了 下面我们要做的就是这两件事 1.前端页面校验用户的身份,如果用户没有登录则跳转到登录页面 2.前端请求资源服务需要在http header中添加jwt令牌,资源服务根据jwt令牌完成授权. 身份校验 前端入口要执行的内容. 在路由触发之前要触发身份校验 搜索openAuthenticate发现在sysConfig下 设置为true 如果是登陆也继续,登陆不需要认证 else的…
定义接口 在api的项目里面定义.AuthControllerApi里面定义接口 jwtResult,里面就有一个jwt的字段. 实现接口 需要这三步 定义私有方法从cookie中读取访问令牌 参数需要request和cookie的名字 难道httpRequest 如果取多个cookie就传多个参数 主方法调用 定义service方法从redis查询令牌 当初我们把jwt存到redis是存了个对象 所以我们需要取出来json然后转成成这个对象并返回 controller调用redis取出返回的j…