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

江苏网站建设 seo便宜的域名购买

江苏网站建设 seo,便宜的域名购买,中山的网站建设公司,橙 建网站5.登录功能 通过最基础的登录操作来完成登录处理 登录页面处理 认证服务的处理 /*** 注册的方法* return*/PostMapping(/login)public String login(LoginVo loginVo , RedirectAttributes redirectAttributes){R r memberFeginService.login(loginVo);if(r.getC…5.登录功能 通过最基础的登录操作来完成登录处理 登录页面处理 认证服务的处理 /*** 注册的方法* return*/PostMapping(/login)public String login(LoginVo loginVo , RedirectAttributes redirectAttributes){R r memberFeginService.login(loginVo);if(r.getCode() 0){// 表示登录成功return redirect:http://msb.mall.com/home;}redirectAttributes.addAttribute(errors,r.get(msg));// 表示登录失败,重新跳转到登录页面return redirect:http://msb.auth.com/login.html;}会员中心的认证逻辑 RequestMapping(/login)public R login(RequestBody MemberLoginVO vo){MemberEntity entity memberService.login(vo);if(entity ! null){return R.ok();}return R.error(BizCodeEnume.USERNAME_PHONE_VALID_EXCEPTION.getCode(),BizCodeEnume.USERNAME_PHONE_VALID_EXCEPTION.getMsg());}service中的具体认证处理 Overridepublic MemberEntity login(MemberLoginVO vo) {// 1.根据账号或者手机号来查询会员信息MemberEntity entity this.getOne(new QueryWrapperMemberEntity().eq(username, vo.getUserName()).or().eq(mobile, vo.getUserName()));if(entity ! null){// 2.如果账号或者手机号存在 然后根据密码加密后的校验来判断是否登录成功BCryptPasswordEncoder encoder new BCryptPasswordEncoder();boolean matches encoder.matches(vo.getPassword(), entity.getPassword());if(matches){// 表明登录成功return entity;}}return null;}6.Auth2.0 OAuth2.0是OAuth协议的延续版本但不向前兼容OAuth 1.0(即完全废止了OAuth1.0)。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户要么允许第三方应用代表用户获得访问的权限。 6.1 微博开放平台 地址https://open.weibo.com/ 创建应用 创建后的基本信息 授权设置 社交认证文档 微博Web端授权的操作 引导用户点击按钮跳转到对应的授权页面 点击授权按钮后查看回调接口的code信息 获取到了code信息59d62e59e5ead5a4ea89c6f9cf212568 然后根据code信息我们可以去授权服务器获取对应的AccessToken。 https://api.weibo.com/oauth2/access_token?client_id1093598037client_secret1085c8de04dee49e9bb110eaf2d3cf62grant_typeauthorization_coderedirect_urihttp://msb.auth.com/success.htmlcode59d62e59e5ead5a4ea89c6f9cf212568 获取Token信息只支持POST方式提交 在PostMan中通过post方式提交成功获取到了对应的token信息 获取到了Token信息后我们就可以去资源服务器获取对象的信息 6.2 百度开放平台 地址 Auth2.0操作https://developer.baidu.com/wiki/index.php?titledocs/oauth 创建应用http://developer.baidu.com/console#app/project 创建完成 引导用户跳转到授权地址 http://openapi.baidu.com/oauth/2.0/authorize?response_typecodeclient_idYOUR_CLIENT_IDredirect_uriYOUR_REGISTERED_REDIRECT_URIscopeemaildisplaypopup地址修改为我们自己的http://openapi.baidu.com/oauth/2.0/authorize?response_typecodeclient_idMmvAkQM7HtrQnKDDhhmTSib5redirect_urihttp://www.baidu.comdisplaypopup 获取到的Code信息 coded789d0160b2fa99bb1f840002569526e 获取到对应的token信息 Token121.6966ae0e0f3cd19fa36a375489342b08.YmfrSxYqsOt1eUoPzkC60yCsa7W09OmqTbPsuVL.zmdMFg token访问地址https://openapi.baidu.com/rest/2.0/passport/users/getLoggedInUser?access_token121.6966ae0e0f3cd19fa36a375489342b08.YmfrSxYqsOt1eUoPzkC60yCsa7W09OmqTbPsuVL.zmdMFg 7.社交登录实现 7.1 code处理 在后台服务中获取code并对应的获取Token信息 然后需要同步的调整引入的链接地址 7.2 获取Token信息 根据上一步获取的code信息我们可以获取对应的Token信息 RequestMapping(/oauth/weibo/success)public String weiboOAuth(RequestParam(code) String code) throws Exception {MapString,String body new HashMap();body.put(client_id,1093598037);body.put(client_secret,1085c8de04dee49e9bb110eaf2d3cf62);body.put(grant_type,authorization_code);body.put(redirect_uri,http://msb.auth.com/oauth/weibo/success);body.put(code,code);// 根据Code获取对应的Token信息HttpResponse post HttpUtils.doPost(https://api.weibo.com, /oauth2/access_token, post, new HashMap(), null, body);int statusCode post.getStatusLine().getStatusCode();if(statusCode ! 200){// 说明获取Token失败,就调回到登录页面return redirect:http://msb.auth.com/login.html;}// 说明获取Token信息成功String json EntityUtils.toString(post.getEntity());SocialUser socialUser JSON.parseObject(json, SocialUser.class);// 注册成功就需要调整到商城的首页return redirect:http://msb.mall.com/home.html;}7.3 登录和注册 表结构中新增对应的 然后在对应的实体对象中添加对应的属性 service中实现注册和登录的逻辑 /*** 社交登录* param vo* return*/Overridepublic MemberEntity login(SocialUser vo) {String uid vo.getUid();// 如果该用户是第一次社交登录那么需要注册// 如果不是第一次社交登录 那么就更新相关信息 登录功能MemberEntity memberEntity this.getOne(new QueryWrapperMemberEntity().eq(social_uid, uid));if(memberEntity ! null){// 说明当前用户已经注册过了 更新token和过期时间MemberEntity entity new MemberEntity();entity.setId(memberEntity.getId());entity.setAccessToken(vo.getAccessToken());entity.setExpiresIn(vo.getExpiresIn());this.updateById(entity);// 在返回的登录用户信息中我们同步的也保存 token和过期时间memberEntity.setAccessToken(vo.getAccessToken());memberEntity.setExpiresIn(vo.getExpiresIn());return memberEntity;}// 表示用户是第一提交那么我们就需要对应的来注册MemberEntity entity new MemberEntity();entity.setAccessToken(vo.getAccessToken());entity.setExpiresIn(vo.getExpiresIn());entity.setSocialUid(vo.getUid());// 通过token调用微博开发的接口来获取用户的相关信息try {MapString,String querys new HashMap();querys.put(access_token,vo.getAccessToken());querys.put(uid,vo.getUid());HttpResponse response HttpUtils.doGet(https://api.weibo.com, /2/users/show.json, get, new HashMap(), querys);if(response.getStatusLine().getStatusCode() 200){String json EntityUtils.toString(response.getEntity());JSONObject jsonObject JSON.parseObject(json);String nickName jsonObject.getString(screen_name);String gender jsonObject.getString(gender);entity.setNickname(nickName);entity.setGender(m.equals(gender)?1:0);}}catch (Exception e){}// 注册用户信息this.save(entity);return entity;}7.4 登录的串联 在Auth服务中我们需要通过Feign来调用MemberService中的相关服务来完成最后的串联 RequestMapping(/oauth/weibo/success)public String weiboOAuth(RequestParam(code) String code) throws Exception {MapString,String body new HashMap();body.put(client_id,1093598037);body.put(client_secret,1085c8de04dee49e9bb110eaf2d3cf62);body.put(grant_type,authorization_code);body.put(redirect_uri,http://msb.auth.com/oauth/weibo/success);body.put(code,code);// 根据Code获取对应的Token信息HttpResponse post HttpUtils.doPost(https://api.weibo.com, /oauth2/access_token, post, new HashMap(), null, body);int statusCode post.getStatusLine().getStatusCode();if(statusCode ! 200){// 说明获取Token失败,就调回到登录页面return redirect:http://msb.auth.com/login.html;}// 说明获取Token信息成功String json EntityUtils.toString(post.getEntity());SocialUser socialUser JSON.parseObject(json, SocialUser.class);R r memberFeginService.socialLogin(socialUser);if(r.getCode() ! 0){// 登录错误return redirect:http://msb.auth.com/login.html;}String entityJson (String) r.get(entity);System.out.println(----------------- entityJson);// 注册成功就需要调整到商城的首页return redirect:http://msb.mall.com/home;}二、分布式session 1.session问题 2.SpringSession整合 我们通过SpringSession来实现Session的共享Session数据存储在Redis中 SpringSession的操作指南 https://docs.spring.io/spring-session/docs/2.5.6/reference/html5/guides/boot-redis.html 导入相关的依赖 dependencygroupIdorg.springframework.session/groupIdartifactIdspring-session-data-redis/artifactId/dependency设置对应的配置 最后我们需要添加对有的注解放开操作 然后在Auth服务和商城首页都整合SpringSession后我们再商城首页可以看到Session的数据注意这儿是手动修改Cookie的域名 3.自定义Cookie 通过自定义Cookie实现session域名的调整 Configuration public class MySessionConfig {/*** 自定义Cookie的配置* return*/Beanpublic CookieSerializer cookieSerializer(){DefaultCookieSerializer cookieSerializer new DefaultCookieSerializer();cookieSerializer.setDomainName(msb.com); // 设置session对应的一级域名cookieSerializer.setCookieName(msbsession);return cookieSerializer;}/*** 对存储在Redis中的数据指定序列化的方式* return*/Beanpublic RedisSerializerObject redisSerializer(){return new GenericJackson2JsonRedisSerializer();} }4.单点登录案例演示 xxl-sso案例代码地址https://gitee.com/xuxueli0323/xxl-sso?_fromgitee_search 下载下来的代码解压缩后通过idea导入然后修改server和simple中的属性文件同时我们需要在host中设置对应的域名 127.0.0.1 ssoserver.com 127.0.0.1 msb1.com 127.0.0.1 msb2.com在server的配置文件中修改Redis的服务地址 然后在simple中修改server的地址和redis服务的地址 然后分别启动服务测试即可
http://www.dnsts.com.cn/news/193107.html

相关文章:

  • 网站建设 软件开发网站开发是前端还是后台
  • 网站 建设需要提供哪些资料合肥哪里有建站公司
  • 可以做网站头像的图片贵州省都匀市网站建设
  • 做网站接电话一般要会什么昆明网站制作企业
  • 免费行情软件网站游戏外汇申报在哪个网站上做
  • 优秀的手机网站案例分析网站后台补丁如何做
  • 网站导入链接求推荐做ppt的网站
  • 优化网站步骤中交路桥建设有限公司电话
  • 海口企业网站建设洛阳最新消息
  • 动易sitefactorycms 网站配置保存不了问题学物联网工程后悔死了
  • 竞价网站单页面做我的世界的mod的网站
  • 网站流量用什么表示网站开发项目详细计划书
  • 网站规划与建设ppt安装字体到wordpress
  • 上海网站建设caiyiduo做视频编辑哪个网站素材比较好
  • 有什么兼职做it的网站好开发一个app需要哪些技术
  • 有个专门做dnf游戏币的网站logo设计免费在线生成
  • 用织梦做网站能练技术吗食品网站建设书
  • 百度能搜到自己的网站做非法网站
  • html是建网站导航栏怎么做wordpress adminajax.php
  • 广州网站优化注意事项成都龙泉建设有限公司网站
  • 网站开发搜索功能怎么实现优秀的设计网站有哪些内容
  • 网站建设及推广枣强网站怎么做才能上百度首页
  • 宁波模板网站建站网站建设项目风险管理的主要内容
  • 怎么做网站移动端购物
  • 东昌府做网站惠州网站建设 翻译
  • 建设网站需要什么设施?黔西南州建设银行网站
  • 婚纱摄影行业网站seo百度网站排名软件
  • 知名高端网站建设企业入驻微信小程序多少钱
  • 网站设计确认06627网页制作和网站建设
  • 可以做效果图的网站冰燃建站