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

(十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...

上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0 登出流程,今天我们看一下根据用户token获取yoghurt信息的流程:

image

      /** 
 * 根据token获取用户信息 
 * @param accessToken 
 * @return 
 * @throws Exception 
 */  
@RequestMapping(value = "/user/token/{accesstoken}", method = RequestMethod.GET)  
public ResponseVO getUserByToken(@PathVariable(value = "accessToken", required = true) String accessToken,@RequestHeader(value = "userId", required = true) Long userId) throws Exception {  
    if(StringUtils.isEmpty(accessToken)){  
        return UserResponseCode.buildEnumResponseVO(UserResponseCode.RESPONSE_CODE_REQ_CANNOT_EMPTY, null);  
    }  
      
    OauthAccessToken oauthAccessToken = userMgrService.getOauthAccessToken(accessToken);  
    if(null == oauthAccessToken){  
        return UserResponseCode.buildEnumResponseVO(UserResponseCode.RESPONSE_CODE_OAUTH_ACCESSTOKEN_EMPTY, null);  
    }  
      
    String userName = oauthAccessToken.getUserName();  
    if (StringUtils.isEmpty(userName)) {  
        return UserResponseCode.buildEnumResponseVO(UserResponseCode.RESPONSE_CODE_OAUTH_ACCESSTOKEN_EMPTY, null);  
    }  
      
    return this.getUser(userName);  
}  
  
       @RequestMapping(path = "/user/get/{userName}", method = RequestMethod.GET)  
public ResponseVO getUser(@PathVariable(value = "userName") String userName) {  
    Map<String, Object> returnData = null;  
    try {  
        User user = userMgrService.getUserByName(userName);  
        if (null != user) {  
            returnData = new HashMap<String, Object>();  
            returnData.put("user", user);  
            return UserResponseCode.buildEnumResponseVO(UserResponseCode.RESPONSE_CODE_SUCCESS, returnData);  
        }  
        return UserResponseCode.buildEnumResponseVO(UserResponseCode.RESPONSE_CODE_SYSTEM_ERROR, null);  
    } catch (Exception e) {  
        return UserResponseCode.buildEnumResponseVO(UserResponseCode.RESPONSE_CODE_SYSTEM_ERROR, null);  
    }  
      
}  

我这里只是简单写了一些登出的代码,我们会在后面的文章中详细贴出所有代码供大家参考,而且会从创建数据库,到执行操作的每一个流程记录下来。

从现在开始,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目。

相关文章:

  • k8s基本概念及入门案例
  • httplib 和 httplib2区别之 gzip解压
  • 【第四期】图片轮播代码
  • 币泳金:比特现金分叉满月比特币跌去半数,比特币为何无法稳定的反弹上升...
  • 设计模式学习笔记(2) - 工厂方法模式
  • linux 淘宝开源监控工具tsar
  • Windows Server 2016 Storage Replica
  • 用MVC做支付宝手机网页支付问题
  • .net core Swagger 过滤部分Api
  • 一位台湾学校校长的演讲
  • k8s使用glusterfs实现动态持久化存储
  • MFC CListCtrl 表格
  • Semaphore
  • L1与L2正则化
  • centos7配置postfix dovecot cyrus-sasl foxmail
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【css3】浏览器内核及其兼容性
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • canvas 五子棋游戏
  • ECS应用管理最佳实践
  • express如何解决request entity too large问题
  • Fundebug计费标准解释:事件数是如何定义的?
  • HTTP--网络协议分层,http历史(二)
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaScript设计模式与开发实践系列之策略模式
  • Java反射-动态类加载和重新加载
  • Js基础——数据类型之Null和Undefined
  • MQ框架的比较
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • tensorflow学习笔记3——MNIST应用篇
  • Terraform入门 - 3. 变更基础设施
  • vue 个人积累(使用工具,组件)
  • 如何解决微信端直接跳WAP端
  • 如何用vue打造一个移动端音乐播放器
  • 听说你叫Java(二)–Servlet请求
  • 我从编程教室毕业
  • 再谈express与koa的对比
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • $.each()与$(selector).each()
  • $GOPATH/go.mod exists but should not goland
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (学习日记)2024.01.09
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • .CSS-hover 的解释
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET 设计模式初探