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

Spring Cloud云架构-SSO单点登录之OAuth2.0 根据token获取用户信息(4)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

 

      /** 
 * 根据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架构的搭建过程及如何运用于企业项目。完整项目的源码来源 技术支持1791743380

转载于:https://my.oschina.net/u/3826344/blog/1839424

相关文章:

  • web.py开发web 第八章 Formalchemy 服务端验证
  • 邮件服务器postfix+dovecot+mysql
  • 基于 J2EE 网银系统的安全系统解决方案概述
  • 第十六天 switch case break
  • 程序员算法练习二
  • Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
  • 作业调度与管理
  • 以太坊又一次大拥堵何去何从?深度对话美图以太坊DPoS算法实现团队
  • linux git命令参数及用法详解--版本控制工具
  • express 遇到问题 - Error: Can't set headers after they are sent
  • 图文介绍openLDAP在windows上的安装配置
  • 新模板电子版发布
  • Tomcat绑定具体IP
  • Heritrix 3.1.0 源码解析(十二)
  • oracle alert 日志位置
  • (三)从jvm层面了解线程的启动和停止
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CEF与代理
  • Create React App 使用
  • Druid 在有赞的实践
  • GitUp, 你不可错过的秀外慧中的git工具
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • php中curl和soap方式请求服务超时问题
  • SQLServer之创建显式事务
  • text-decoration与color属性
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 记一次删除Git记录中的大文件的过程
  • 入手阿里云新服务器的部署NODE
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 学习HTTP相关知识笔记
  • 学习Vue.js的五个小例子
  • 一、python与pycharm的安装
  • UI设计初学者应该如何入门?
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​queue --- 一个同步的队列类​
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #pragma pack(1)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (2.2w字)前端单元测试之Jest详解篇
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C)一些题4
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (剑指Offer)面试题34:丑数
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (转)用.Net的File控件上传文件的解决方案
  • .NET BackgroundWorker
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @Autowired和@Resource的区别
  • @ResponseBody
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用