微博第三方登录

最近刚好在学习第三方登录,这里先做一下微博第三方登录的记录,因为qq第三方登录必须要完成网站备案后才能进行,后面再进行补充。

大致可以分成下面几个步骤

下面根据我自己的实现过程做一下总结吧。

  1. 准备工作
    (1)首先需要有一个准备接入第三方登录的引用,这里可以是自己的一个小案例web项目。
    (2)需要准备一个域名,并判定自己的应用,这样通过微博审核才能获取到app key和secret
域名申请对于只是想要学习第三方登录开发过程的同学来说是比较麻烦的,首先大家需要去一些云服务器上面租一个服务器,再上面部署自己的应用,这里可以选择的云还是很多的,然后再买一个域名,并解析服务器ip。
  1. 申请appkey
    准备工作完成后,我们就需要到微博开放平台上进行申请了。
    http://open.weibo.com/

    完成开发者的身份认证后,我们就需要创建一个应用,然后提交审核,这里需要用到之前绑定的域名等信息,审核通过后就可以获得app key和app secret。

这样子 微博审核通过后,我们可以获得开发中需要用到的东西了,然后就可以进行下面的开发。
3. 开发过程
下面我们讲利用微博提供的 java sdk进行第三方登录的开发。
首先下载sdk
https://github.com/sunxiaowei2014/weibo4j-oauth2-beta3.1.1/
下载完成后,我们可以先阅读一个README.md

使用方法1、 请先填写相关配置:在Config.properties里 client_ID :appkey 创建应用获取到的appkey client_SERCRET :app_secret 创建应用获取到的appsecret redirect_URI : 回调地址 OAuth2的回调地址2、 然后调用example里:OAuth4Code.javapublic class OAuth4Code {public static void main(String [] args) throws WeiboException, IOException{Oauth oauth = new Oauth();BareBonesBrowserLaunch.openURL(oauth.authorize("code"));System.out.print("Hit enter when it's done.[Enter]:");BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String code = br.readLine();Log.logInfo("code: " + code);try{System.out.println(oauth.getAccessTokenByCode(code));} catch (WeiboException e) {if(401 == e.getStatusCode()){Log.logInfo("Unable to get the access token.");}else{e.printStackTrace();}}
}
}3、 运行后会弹出浏览器地址跳转到授权认证页面,然后输入你的微博帐号和密码,会调转到你的回调地址页面,url后面会传递code参数4、 然后在console输入code就能获取到oauth2的accesstoken5、 接下来即可调用example,在此以user/show接口为例:public class ShowUser {public static void main(String[] args) {String access_token = WeiboConfig.getValue("access_token");String uid = args[0];Users um = new Users(access_token);try {User user = um.showUserById(uid);Log.logInfo(user.toString());} catch (WeiboException e) {e.printStackTrace();}
}
}access_token为auth4code获取到的oauth2的accesstoken。 由于目前只开放支持code的oauth认证方式,所以sdk暂时只支持code获取token方式。

我们导入示例程序

微博第三方登录采用OAuth2.0协议,我们修改/weibo4j-oauth2/src/config.properties配置文件:

client_ID = 你自己的app key
client_SERCRET = 你自已的app sercret
redirect_URI = 回调地址
baseURL=https://api.weibo.com/2/
accessTokenURL=https://api.weibo.com/oauth2/access_token
authorizeURL=https://api.weibo.com/oauth2/authorize
rmURL=https://rm.api.weibo.com/2/

关于回调地址,就是微博认证成功后返回的页面,这个页面应该是开发者自己开发的页面,这个页面可以用来获取微博登录用户的信息等。这里需要在微博开放平台->我的应用->应用信息->高级信息->OAuth2.0 授权设置中进行配置,如果这个地址和配置文件不一致会出现授权页面出错的问题。
打开/weibo4j-oauth2/examples/weibo4j/examples/oauth2/OAuth4Code.java
运行成功后就可以看到第三方登录的信息。

sample演示成功后,我们可以把第三方登录引入自己的项目中了

package lab.io.rush.controller;import java.io.BufferedReader;
import java.io.InputStreamReader;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import weibo4j.Oauth;
import weibo4j.examples.oauth2.Log;
import weibo4j.model.WeiboException;
import weibo4j.util.BareBonesBrowserLaunch;@Component
@RequestMapping("/weibologin.do")
public class weiboLoginController {@RequestMappingpublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {Oauth oauth = new Oauth();String url = oauth.authorize("code",null);response.sendRedirect(url);
//      BareBonesBrowserLaunch.openURL(oauth.authorize("code",null));return null;}}

下面是回调地址的代码:

package lab.io.rush.controller;import java.io.BufferedReader;
import java.io.InputStreamReader;import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import weibo4j.Oauth;
import weibo4j.Users;
import weibo4j.examples.oauth2.Log;
import weibo4j.model.User;
import weibo4j.model.WeiboException;
import weibo4j.util.BareBonesBrowserLaunch;@Component
@RequestMapping("/auth.do")
public class authController {@RequestMappingpublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {String code = request.getParameter("code"); Oauth oauth = new Oauth();  String token;try {token = oauth.getAccessTokenByCode(code).toString();String str[] = token.split(","); String accessToken = str[0].split("=")[1];  String str1[] = str[3].split("]");  String uid = str1[0].split("=")[1]; Users users = new Users() ; users.client.setToken(accessToken) ;User weiboUser = users.showUserById(uid);String name = weiboUser.getScreenName();request.getSession().setAttribute("user", name);       } catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();}       response.sendRedirect(request.getContextPath()+"/index.do");return null;  }
}

这里需要添加jar包的支持,相应的依赖项如下:

<!-- https://mvnrepository.com/artifact/com.belerweb/weibo4j-oauth2 --><dependency><groupId>com.belerweb</groupId><artifactId>weibo4j-oauth2</artifactId><version>2.1.1-beta2-3</version></dependency><!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient --><dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version></dependency><!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.6.2</version></dependency><!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.9</version></dependency><!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.2</version></dependency>

这样子微博的第三方登录就可以成功接入自己的应用了。

web接入微博第三方登录相关推荐

  1. web接入QQ第三方登录

    原文地址:https://blog.csdn.net/cwfjimogudan/article/details/54135957 这是第三方登录的第二篇,关于web接入微博第三方登录可以参考我之前的博 ...

  2. 微博第三方登录,拿捏了

    什么是第三方登录? 用户登录操作不是基于自身建设账号体系,而是基于用户在第三方平台上已有的账号和密码来快速完成登录的过程.下面我列举了几点第三方登录的优点. 极大的简化登录注册的流程. 方便用户快捷登 ...

  3. Java Web 实现 QQ第三方登录

    java web 实现QQ第三方登录功能 首先点击该链接进入腾讯开放平台 ,注册成为开发者 2.注册成功后到这个页面 3.创建web应用 4.填写基本信息(以前的这里会让你填写回调地址 ,现在改了) ...

  4. maven的web工程QQ第三方登录HTML、

    声明.使用JDK9.idea2018.02 .maven3.5.4.tomcat9  maven的web工程QQ第三方登录接口引入,听起来简单,做完以后也很简单,这里使用 java SDK : 写的文 ...

  5. SpringBoot项目接入支付宝第三方登录

    今年大四毕业,由于新冠肺炎疫情的原因,开学和毕业答辩的时间都进行了推迟,因此有较多的时间对毕设项目做修改和调整,便在项目中接入微信和支付宝的第三方登录.在此需要说明,微信和支付宝的开发者平台大体一致, ...

  6. 关于微博第三方登录的Javascript的实现方法

    微博官方API支离破碎,仿佛都是实习生的练手之作.让我这种大菜鸟郁闷不已,搜网上的微博第三方登录,基本都是只有问题没有解决结果.最后解决了,所以写下这篇文章,已祭奠我的一上午. 首先,登录http:/ ...

  7. web实现QQ第三方登录

    web实现QQ第三方登录 开放平台-web实现QQ第三方登录 应用场景 web应用通过QQ登录授权实现第三方登录. 操作步骤 1  注册成为QQ互联平台开发者, http://connect.qq.c ...

  8. 韩国 naver web网页版第三方登录 naver网页登录

    韩国 naver web网页版第三方登录 <!DOCTYPE html> <html lang="en"><head><meta char ...

  9. 韩国 kakaotalk web网页版第三方登录示例 kakaotalk网页版

    韩国 kakaotalk web网页版第三方登录示例 先跳转 授权 https://kauth.kakao.com/oauth/authorize?client_id="+restApi+& ...

最新文章

  1. 做专才能做强做大——从OA、协同之争说起
  2. python函数编程-偏函数partial function
  3. 【Netty】Netty 简介 ( 原生 NIO 弊端 | Netty 框架 | Netty 版本 | 线程模型 | 线程 阻塞 IO 模型 | Reactor 模式引入 )
  4. 【ClickHouse 技术系列】- ClickHouse 聚合函数和聚合状态
  5. 抽取CNN网络任意层的特征,VGG模型fine-tuning实践
  6. 使用Jasypt加密spring boot应用配置文件的敏感信息
  7. 实习成长之路:MySQL二 : 一条SQL更新语句是如何执行的?
  8. C#网络编程技术FastSocket实战项目演练
  9. java安装教程(eclipse)
  10. 0501 0503 模块区别_关于博途STEP7仿真软件究竟与真实PLC有哪些区别?
  11. 【Spring源码三千问】BeanDefinition详解——什么是 RootBeanDefinition?merged bean definition 又是什么鬼?
  12. 项目中使用docker部署xxl-job
  13. excel表格数据导入导出
  14. 网站cc攻击的防御步骤
  15. 如何解决因网络问题导致的 github 下载出错
  16. PS快速处理证件照(给证件照拉直)
  17. 【bzoj3875】[Ahoi2014Jsoi2014]骑士游戏
  18. 肖 清华计算机系 北大生命科学,7个清华北大,11+复旦交大,后续还有一大波浙大……他们都是同班同学!...
  19. 绘图库Matplotlib | Python技能树征题
  20. Camtasia Studio2023中文版下载安装图文教程

热门文章

  1. 鼠标点击地面人物自动走动(也包含按键wasdspace控制)
  2. Qt/C++ 模仿 酷狗音乐播放器
  3. python如何调试_调试python 程序的几种方法总结
  4. UG8.0五金冲压模具设计基础讲解视频教程
  5. 【Hadoop】网站基本指标分析及统计
  6. 英文写作——The Elements of Style知识点解读5—正确使用代词的格
  7. 项目计划软件 project安装包的下载和安装教程
  8. Project 2021为项目管理带来智能、高效可靠的未来+全版本安装包
  9. linux ssh公钥免密码登录
  10. RuntimeError: Exporting the operator count_nonzero to ONNX opset version 13 is not supported. Please