首页 > 其他分享 >单点登陆社交登陆

单点登陆社交登陆

时间:2023-05-20 21:35:36浏览次数:34  
标签:weibo code 单点 String map com json 登陆 社交

单点登陆社交登陆 OAuth2.0

OAuth2.0 image.png

  • 使用微博社交登陆 https://open.weibo.com/connect image.png
  • 开发手册 https://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E image.png
更换 YOUR_CLIENT_ID App Key:1514335119
更换 YOUR_REGISTERED_REDIRECT_URI OAuth2.0 授权设置 授权回调页 成功的
https://api.weibo.com/oauth2/authorize?client_id=1514335119&response_type=code&redirect_uri=http://gulimall.com/success
第二  
如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE
eg http://guliimall.com/success?code=507925fe1eacf95eb09b875fe1cfcf83
第三  
换取Access Token 访问令牌
https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
使用Code换取Access Token,Code只能用一次
同—个用户的accessToken—段时间是不会变化的

image.png

image.png

image.png

image.png

社交登陆

授权登陆后 会有一个回调地址  并携带code 利用code 换取令牌 接下来操作
@GetMapping("/oauth2.0/weibo/success")
public String weibo(@RequestParam("code") String code) throws Exception {
    //1.code 换取accessToken
    //2.登陆成功调回首页
    Map<String, String> map = new HashMap<>();
    map.put("client_id", "1514335119");//应用id
    map.put("client_secret", "d3b69f4674eef8cf01602c4346660556");
    map.put("grant_type", "authorization_code");
    map.put("redirect_uri", "http://auth.gulimall.com/oauth2.0/weibo/success");//回调地址
    map.put("code", code);//code
    //String host, String path, String method, Map<String, String> headers,querys,bodys
    HttpResponse response = HttpUtils.doPost("https://api.weibo.com", "/oauth2/access_token", "post",
            new HashMap<>(), map, new HashMap<>());
    //如果获取相应码 是200 成功
    if (response.getStatusLine().getStatusCode() == 200) {
        //获取响应实体类 EntityUtils转换
        String json = EntityUtils.toString(response.getEntity());
        //转换SocialUser.class 对象
        SocialUser socialUser = JSON.parseObject(json, SocialUser.class);
        //1.当用户第一次进网站 会自动注册 或者有了 就登陆
    } else {
        return "redirect:http://auth.gulimall.com/login.html";
    }
    return "redirect:http://gulimall.com";
}
  • org.apache.http.util下的一个工具类
String json = EntityUtils.toString(response.getEntity());
//json 转换json object
JSONObject jsonObject = JSON.parseObject(json);
//直接获取属性
String name = jsonObject.getString("name");//直接获取名称

标签:weibo,code,单点,String,map,com,json,登陆,社交
From: https://blog.51cto.com/u_15993308/6317872

相关文章

  • 登陆google账号存在异常,但是无法使用自己的手机号码验证怎么办?
    谷歌账号登陆提示尝试次数过多,暂时无法登陆,这种情况下说明是谷歌在拦截你登陆。一般是因为ip环境异常或谷歌不信任此设备造成的,常见在苹果iPhone设备上。许多登陆DNF韩服谷歌的朋友在iPhone上登陆都容易出现这种情况。如图所示,你尝试次数越频繁,谷歌反而对此登陆活动更加敏感,所以出......
  • Centos 设置密钥登陆并禁用密码
    1:备份文件cd/etc/ssh/scpsshd_configsshd_config.bak2:生成密钥一路回车按下去就可以了。[root@centos7-1ssh]#ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):#回车Createddirectory'/root/.ssh......
  • 微服务使用openfeign调用单点的会话失效问题
    项目Springcloud,认证中心方式实现SSO使用开源框架Sa-Token本身的单独访问每个客户端服务的单点就没有问题。然后单点通过Fegin调用就不好使了!主要使用的Sa-Token的微服务单点功能使用的依赖如下<!--SA-TokenSSO--><dependencyManagement><dependencies>......
  • 从零玩转第三方登录之WeChat公众号扫码关注登陆 -wechatgzh
    title:从零玩转第三方登录之WeChat公众号扫码关注登陆date:2022-09-2722:46:53.362updated:2023-03-3013:28:41.359url:https://www.yby6.com/archives/wechatgzhcategories:-从零玩转系列tags:-第三方登录-从零玩转系列前言由于看见了面试鸭的登陆方式,我......
  • 从零玩转第三方登录之WeChat公众号登陆-cong-ling-wan-zhuan-di-san-fang-deng-lu-zhi
    title:从零玩转第三方登录之WeChat公众号登陆date:2022-09-0316:32:57.876updated:2022-09-0316:32:57.876url:https://www.yby6.com/archives/cong-ling-wan-zhuan-di-san-fang-deng-lu-zhi-wechat-gong-zhong-hao-deng-lucategories:tags:前言由于看见了面试鸭......
  • Plsql或Navicat连接登陆Oracle时慢、执行语句的时候也特别慢的问题解决方案
    用Plsql或Navicat连接登陆Oracle时,等待时间特别长。经过漫长的等待后,执行语句的时候也特别慢,监听配置没毛病的情况下,大概率是监听日志文件过大导致的。监听日志路径:app\Administrator\diag\tnslsnr\LS--20171012URU\listener\trace\listener.log删除listener.log文件即可。......
  • Linux vsftpd服务虚拟用户登陆实验
    转至:https://zhuanlan.zhihu.com/p/354577768工具:win10系统、CentOs6.5实操:第一步:基础环境搭建:设置服务器IP地址为192.168.10.10,防护墙、内核机制关闭[root@bogon~]#vim/etc/sysconfig/network-scripts/ifcfg-eth0IP:192.168.10.10[root@bogon~]#servicenetworkreloa......
  • 即时通讯技术文集(第15期):IM跨平台和社交软件红包技术 [共19篇]
    为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第15 期。[- 1 -] IM跨平台技术学习(一):快速了解新一代跨平台桌面技术——Electron[链接] http://www.52im.net/thread-2616-1-1.html[摘要] 本文将从入门者的角度,为你快速讲......
  • 基于轨迹预测的驾驶员方向控制方法实现的单点预瞄,通过carsim与simulink仿真发现,该方法
    基于轨迹预测的驾驶员方向控制方法实现的单点预瞄,通过carsim与simulink仿真发现,该方法能够良好的实现车俩的轨迹跟踪控制。有对应信息和文件说明。ID:23100684398458311......
  • mysql用户表root用户被锁定,无法登陆(Account is locked)
    今天看到mysql的user表就打开了看看,看到root还有些权限是N,然后顺手就改成了Y,结果保存之后就凉凉了,数据库就打不开了,报“Accountislocked”这个错误,上网排查了好半天才解决,解决方法记录一下。解决思路:1、使用skip-grant-tables跳过密码验证,此时可以打开MySQL服务并登录2、......