当前位置: 首页 > 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
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 78. Subsets
  • Centos6.8 使用rpm安装mysql5.7
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Golang-长连接-状态推送
  • Hibernate【inverse和cascade属性】知识要点
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JS字符串转数字方法总结
  • leetcode-27. Remove Element
  • mongo索引构建
  • ng6--错误信息小结(持续更新)
  • PHP面试之三:MySQL数据库
  • python 装饰器(一)
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 程序员最讨厌的9句话,你可有补充?
  • 对JS继承的一点思考
  • 工作手记之html2canvas使用概述
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 事件委托的小应用
  • python最赚钱的4个方向,你最心动的是哪个?
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • #大学#套接字
  • (第一天)包装对象、作用域、创建对象
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET BackgroundWorker
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET正则基础之——正则委托
  • :“Failed to access IIS metabase”解决方法
  • :中兴通讯为何成功