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

网站建设走什么科目wordpress qq邮件订阅

网站建设走什么科目,wordpress qq邮件订阅,深圳公司网站备案,wordpress z1#xff1a;准备工作 1.1#xff1a;进入钉钉开放平台创建开发者应用。应用创建和类型介绍#xff0c;参考下方。 应用类型介绍 - 钉钉开放平台 (dingtalk.com) 应用能力介绍 - 钉钉开放平台 (dingtalk.com) 扫码登录第三方网站 - 钉钉开放平台 (dingtalk.com) 1.2…1准备工作 1.1进入钉钉开放平台创建开发者应用。应用创建和类型介绍参考下方。 应用类型介绍 - 钉钉开放平台 (dingtalk.com) 应用能力介绍 - 钉钉开放平台 (dingtalk.com) 扫码登录第三方网站 - 钉钉开放平台 (dingtalk.com) 1.2创建好的应用给对应权限。 我开通了个人权限和通讯录管理所有权限建议是全部员工因为这个权限只能api的权限不会影响钉钉的权限 2:扫码登录具体实现和效果 2.1 前端和后端代码展示前端不是很会 工作流程介绍 用户扫码--授权之后重定向给钉钉处理返回一个code---钉钉处理之后执行回调域名并且携带code--调用getBycodeResponse接口返回unionid -- 然后调用scanCodeLogin 登录接口----成功之后进入首页。 先在 index.html 内引入一段脚本 script srchttps://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js/script 再编写如下代码 const redirect_uri http://192.168.0.137:3000/#/ddlogin; onMounted((){ const url encodeURIComponent(redirect_uri); const goto encodeURIComponent(https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid%E4%BD%A0%E7%9A%84APP_IDresponse_typecodescopesnsapi_loginstateSTATEredirect_urihttps://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid%E4%BD%A0%E7%9A%84APP_IDresponse_typecodescopesnsapi_loginstateSTATEredirect_uri url); const obj window.DDLogin({ id:ddLogin, goto, style: border: none, width : 350, height: 350 }); }); const handleMessage function (event: any) { const origin event.origin; if( origin https://login.dingtalk.com ) { //判断是否来自ddLogin扫码事件。 // 下面这个连接会在钉钉那边处理完毕之后直接让浏览器的URL变成 redirect_uri location.href https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid%E4%BD%A0%E7%9A%84APP_IDresponse_typecodescopesnsapi_loginstateSTATEredirect_urihttps://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid%E4%BD%A0%E7%9A%84APP_IDresponse_typecodescopesnsapi_loginstateSTATEredirect_uri encodeURIComponent(redirect_uri) loginTmpCode event.data; } };收起链接预览无权限https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appiddingtalk.com无权限https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appiddingtalk.com ApiOperation(value 根据sns临时授权码获取用户信息, notes 根据sns临时授权码获取用户信息) RequestMapping(value /getBycodeResponse, method RequestMethod.GET) public OapiSnsGetuserinfoBycodeResponse getBycodeResponse(RequestParam(value authCode)String authCode) throws JsonProcessingException, ApiException {OapiSnsGetuserinfoBycodeResponse bycodeResponse sampleUtlis.getBycodeResponse(authCode, AppKey, appSecret);return bycodeResponse;} /*** 退出登录* return*/ ApiOperation(value 扫码登录验证, notes 扫码登录验证) GetMapping(value /scanCodeLogin) public ResultObject scanCodeLogin(RequestParam(unionid) String unionid, HttpServletResponse response) {ResultObject resultnew Result();try {ZuodouUser zuodouUser zuodouUserMapper.selectOne(new LambdaQueryWrapperZuodouUser().eq(StringUtils.isNotBlank(unionid), ZuodouUser::getUnionid, unionid));if (nullzuodouUser){result.error500(查无此人);return result;}String username zuodouUser.getUsername();//判断用户是否存在ZuodouUser bannerItemzuodouUserMapper.selectOne(new LambdaQueryWrapperZuodouUser().eq(ZuodouUser::getUsername,username));result iZuodouUserService.verifyaccount(bannerItem);if(!result.isSuccess()) {return result;}UserModel userModelnew UserModel();BeanUtils.copyProperties(bannerItem,userModel);ListZuodouUserRole zuodouUserRoles zuodouUserRoleService.list(new LambdaQueryWrapperZuodouUserRole().eq(ZuodouUserRole::getUserId, bannerItem.getId()).eq(ZuodouUserRole::getStatus, StatusEum.getNameValue(CommonConstant.STATUSNAME_A)));if (!CollectionUtils.isEmpty(zuodouUserRoles)){userModel.setRole(zuodouUserRoles.stream().map(s-s.getRoleId()).collect(Collectors.toList()));ListString zuodouRolePermissions zuodouRolePermissionMapper.listPermission(userModel.getRole());if (!CollectionUtils.isEmpty(zuodouRolePermissions)){userModel.setPermission(zuodouRolePermissions);}}zuodouUser.setLastLogin(new Date());zuodouUserMapper.updateById(zuodouUser);String jwtToken JwtUtils.getJwtToken(userModel);Cookie cookie new Cookie(userTokenUtils.getTokenCode(), jwtToken);cookie.setPath(/);cookie.setMaxAge(Math.toIntExact(CommonConstant.TOKEN_EXPIRE));response.addCookie(cookie);//先删除keyredisUtil.del(userTokenUtils.getTokenCode()bannerItem.getId());redisUtil.set(userTokenUtils.getTokenCode() bannerItem.getId(), jwtToken,CommonConstant.REDIS_EXPIRE*2);log.info(userTokenUtils.getTokenCode() bannerItem.getId());MapString,Object mapnew HashMap();map.put(CommonConstant.TOKEN_MODEL,bannerItem);map.put(userTokenUtils.getTokenCode(),jwtToken);result.setResult(map);result.success(登录成功);} catch (Exception e) {e.printStackTrace();result.error500(操作失败);}return result; }
http://www.dnsts.com.cn/news/76760.html

相关文章:

  • 做二手车网站需要什么手续wordpress微博功能
  • 中山网站建设文化案例国外建站企业
  • 彩票网站开发 添加彩种教程常州网站制作套餐
  • 买模板做网站营销网站制作教程
  • 织梦网站后台打不开网站分类页标题加长
  • 域名做非法网站支付宝小程序推广
  • 微信官方网站建设代理网址怎么用
  • 泉州网站建设技术托管谷歌搜索引擎 google
  • 网站备案核验单清晰网页设计一般尺寸
  • 如何做网站推广广告能自己做的ppt网站
  • win7 iis 默认网站正规的网站优化推广公司
  • 网站推广在线推广山西建筑劳务网站
  • 我做的网站怎样推广一个完整的产品规划方案
  • 免费 网站源码产品免费发布平台
  • 做企业网站的第一步需要啥沈阳最新通知今天重要消息
  • 网站模块下载商务网站建设需要备案吗
  • 网站微信支付怎么做的如何查询一个网站是否备案
  • 豆瓣网站模板怎么定义自豪地采用WordPress
  • 百度站长平台申请提交链接哈尔滨全国网站建设
  • 舒城县重点工程建设局网站建站行业消失了吗
  • 昌吉哪个公司做网站网站开发和商城的科目
  • 郑州网站搭建的公司知名品牌策划设计公司
  • 北京移动端网站价格大型门户网站建设哪便宜
  • 做网站的不给ftp给个人网站做百度百科
  • 网站空间购买价格深圳网站设计兴田德润优惠吗
  • 中堂仿做网站wordpress 分类目录置顶
  • 空白网站怎么建一个空间做2个网站
  • 妇女儿童心理咨询网站建设济南网站设计制作要多久
  • 手机wap网站模板下载wordpress模板脚步代码哪里修改
  • 展示网站模板下载白市驿网站建设