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

拼团购物网站开发企业网站制作官网

拼团购物网站开发,企业网站制作官网,标志设计的表现形式,宿州保洁公司大家好#xff0c;我是雄雄#xff0c;欢迎关注微信公众号#xff1a;雄雄的小课堂 前言 现在是#xff1a;2022年4月19日19:56:56 昨天写了个bladex的单点登录#xff0c;回想起来还是比较复杂的#xff0c;今天又收到了个在若依里面实现单点登录。具体是这样的:别的系… 大家好我是雄雄欢迎关注微信公众号雄雄的小课堂 前言 现在是2022年4月19日19:56:56 昨天写了个bladex的单点登录回想起来还是比较复杂的今天又收到了个在若依里面实现单点登录。具体是这样的:别的系统中访问我们的系统但是用户已经在那边系统登录过了跳转到这边无需在来一次登录直接上本系统中继续后续的操作。 实现思路 三方系统也就是需要跳转我们系统的系统直接请求我们系统的登录页面挂着token参数。在我们系统登录界面判断请求链接中有没有token,没有则正常走登录流程。如果没有token则重新写一个单点登录的接口去请求。在后台将拿到的token去三方系统中鉴权通过则继续登录没有通过则直接返回到登录页面。 实现代码 前端 1.在login的vue页面中的created方法中调用单点登录的方法。 created() {//平台单独的登录 2022年4月19日11:23:58this.getLoginByNameAndTokenJ();},2.在methods中写函数的实现 /*** 三方平台单点登陆系统 2022年4月19日11:22:33* 只传递token*/getLoginByNameAndTokenJ(){//获取地址栏中的tokenvar token this.$route.query.token;//调用登录的接口if(token||tokenundefined||tokennull){//不是那边系统过来的不走这个地方阻止created的方法继续向下走}else{//转圈圈不要看到登陆页面无感体验this.loading true;var logininfo {token:token};//执行另一套登录操作//不是本系统的用户,去J平台登陆去this.$store.dispatch(LoginJHaveToken, logininfo).then(() {this.$message.success(登录成功);this.loading false;//判断当前角色getInfo().then((res) {//获取角色名称var rolesName res.roles[0];//获取所属场馆this.deptInfo res.dept;sessionStorage.setItem(ssUserName, res.user.nickName);//如果是场馆管理员if (rolesName changguanmanager) {this.$router.push({path: /VenueKanban,query: {changguan: res, aa: 0},replace: true}).catch(() {});//否则就是其他用户} else {this.$router.push({path: this.redirect || /}).catch(() {});}});}).catch(err {console.log(有异常信息,err);//异常信息this.loading false;if (this.captchaOnOff) {this.getCode();}});}}, 3.在user.js中实现LoginJHaveToken方法 //平台带着token登录不需要输入账号密码//密码都是123456//还需要带着token验证一下LoginJHaveToken({ commit }, userInfo) {const token userInfo.tokenconst queryParams {token:token};return new Promise((resolve, reject) {getLoginByJHaveToken(queryParams).then(res {setToken(res.token)commit(SET_TOKEN, res.token)resolve()}).catch(error {reject(error)})})}, 4.在login.js中实现getLoginByJHaveToken方法 /*** 平台带着tonken进行登录** param queryParam* returns {*}*/export function getLoginByJHaveToken(queryParam) {return request({url: /ToThirdPart/toThirdPartGetAuthJHaveToken,method: post,params: queryParam})} 后端 1.在/ToThirdPart/toThirdPartGetAuthJHaveToken控制器中实现登录的操作 /*** Description: 平台带着token来系统里面登陆* 这边需要做两个步骤* 1.检测数据库里面有没有这个用户名有则不操作无则添加* 2.去平台验证一下Token是否有有的话继续操作后面的登录* 平台没有这个token则直接打回去不让上来* author: 穆雄雄* date: 2022/4/19 上午 11:38* Return: com.ruoyi.common.core.domain.AjaxResult*/PostMapping(/toThirdPartGetAuthJHaveToken)ApiOperation(value 平台带着token过来登录)public AjaxResult toThirdPartGetAuthJHaveToken(String token) {//调用验证token的方法JSONObject jsonObject checkJToken(token);String code jsonObject.getString(code);Integer level 0;String loginName ;Long organId null;//返回结果AjaxResult ajax null;if (code.equals(0)) {//验证成功JSONObject dataObject jsonObject.getJSONObject(data);//拿到其他的信息level dataObject.getInteger(level);loginName dataObject.getString(name);organId dataObject.getLong(organId);} else {ajax AjaxResult.error(jsonObject.getString(msg));return ajax;}String isUserNameHas ;//检测一下用户名存在不存在if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(loginName))) {isUserNameHas 用户已存在不需要执行添加的操作;} else {//用户不存在时将用户添加到数据库中SysUser sysUser new SysUser();//登录名sysUser.setUserName(loginName);//昵称sysUser.setNickName(loginName);//密码统一都是123456sysUser.setPassword(SecurityUtils.encryptPassword(123456));//创建者标识J平台过来的用户sysUser.setCreateBy(j_have_token);//创建日期sysUser.setCreateTime(new Date());//所属等级sysUser.setHierarchy(level);//明文sysUser.setMingwen(123456);//账户权限为了区分是平台的用户还是本系统用户//id返回来之后需要加上sysUser.setDeptId(organId);//所属等级如果没有则角色是全国的//1 省 2 市 3 区if (level null) {//角色Long[] roleids {104L};sysUser.setRoleIds(roleids);} else {Long[] roleids {100L};sysUser.setRoleIds(roleids);}int rows userService.insertUser(sysUser);if (rows 0) {isUserNameHas 添加成功;}}ajax AjaxResult.success();// 生成令牌(不加验证码登录)String tokenNew loginService.loginNoCode(loginName, 123456, null);ajax.put(Constants.TOKEN, tokenNew);ajax.put(isUserNameHas, isUserNameHas);ajax.put(msg, 登录成功);return ajax;} 2.鉴权方法checkJToken验证token是否存在存在则返回用户信息不存在则打回去 /*** 检测一下J平台的token 对不对** param token* return*/public JSONObject checkJToken(String token) {JSONObject jsonObject new JSONObject();//测试环境String baseUrl http://xxxxx/checkTokenRtnInfo?stk token;HttpResponse d HttpRequest.get(baseUrl).header(HttpHeaders.CONTENT_TYPE, application/json).header(HttpHeaders.ACCEPT, application/json).execute();return (JSONObject) JSONObject.parse(d.body().toString());} 3.绕过验证码登录的方法重写loginService.loginNoCode方法 /*** 不加验证码登录** param username 用户名* param password 密码* param uuid 唯一标识* return 结果*/public String loginNoCode(String username, String password, String uuid){// 用户验证Authentication authentication null;try{// 该方法会去调用UserDetailsServiceImpl.loadUserByUsernameauthentication authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));}catch (Exception e){if (e instanceof BadCredentialsException){AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message(user.password.not.match)));throw new UserPasswordNotMatchException();}else{AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));throw new ServiceException(e.getMessage());}}AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message(user.login.success)));LoginUser loginUser (LoginUser) authentication.getPrincipal();recordLoginInfo(loginUser.getUserId());// 生成tokenreturn tokenService.createToken(loginUser);} 最后就可以了可能这种方式不是最好的但是目前仅想到这种方法。 注意事项 因为若依的登录方法是带着验证码的如果不带则会提示验证码失效目前登录传参的方式是post相对比较安全点。三方系统请求的时候参数是在链接中挂着不是很靠谱。
http://www.zqtcl.cn/news/284033/

相关文章:

  • 重庆铜梁网站建设价格阜城网站建设价格
  • 怎样建置换平台网站公众号开发周期
  • 朝阳建设网站什么是网络设计方案网络设计的原则有哪些
  • 长春商城网站制作二级网站建设 知乎
  • 网站建设的结论沭阳县建设局网站
  • 镇江网站制作价格网络有限公司简介
  • 海淀网站建设哪家公司好wordpress非常卡
  • 门户网站的建设意义交互设计专业就业前景
  • 那里有学做网站的2345网址导航下载官网
  • 房产证查询系统官方网站购买网站域名
  • 高端企业门户网站建设服务公司深圳企业网站怎么做
  • 页游网站如何做推广平面图设计软件有哪些
  • 自建网站有哪些wordpress 评论增加字段
  • 企业网站建设的方案书pc网站 公众号数据互通
  • 东莞设计制作网站制作做的asp网站手机号码
  • 必须做网站等级保护网站软件免费下载安装
  • 广州天河 网站建设上海招标网站
  • 云南网站建设方案专业的徐州网站开发
  • 政务服务 网站 建设方案郑州网站建设公司电话多少
  • 优化网站浏览量怎么看建设网站公司专业服务
  • php做的网站预览单产品网站建设
  • 网站文件验证上海推广网站公司
  • 如何免费申请网站外贸工艺品网站建设
  • 有名的wordpress网站网站开发企业培训
  • 中国建设银行绑定网站南宁seo如何做
  • 饮食类网站律师资格证报考条件
  • 昆明网站建设推广房源管理免费系统
  • jsp网站开发书籍环保网站 怎么做
  • 深圳营销型网站建设公司搜狗短网址生成
  • 如何优化购物网站建设广州seo公司排行