微博第三方登录

最近刚好在学习第三方登录,这里先做一下微博第三方登录的记录,因为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. 发布一个原创的基于Ajax的通用(组合)查询
  2. Java编译分类:前端编译和后端编译
  3. java return
  4. 弹窗php整人_[整人小程序] 超级信息框(无限弹窗++)
  5. springmvc在controller和视图之间传递参数
  6. MATLAB学习——矩阵
  7. Elasticsearch -- Java High Level REST Client (RestHighLevelClient) 使用说明文档
  8. Vegas导入PSD格式文件(素材)的方法
  9. linux幻灯片制作工具,PPT2010幻灯片制作实用小技巧
  10. SQL Server详细教程
  11. 频段、信道带宽、EARFCN、频段和EARFCN之间的换算
  12. vue获取麦克风_HTML5操作麦克风获取音频数据(WAV)的一些基础技能
  13. mysql数据字典在哪_MySQL数据字典
  14. Unity敌人的AI
  15. DENSE_RANK函数
  16. 30分钟java桌球小游戏,30分钟完成桌球小游戏项目
  17. Python-pip 安装与使用
  18. 冒泡排序正序逆序例子
  19. 基于QT4的智能温度采集控制系统
  20. paint 3d_如何使用Microsoft Paint 3D

热门文章

  1. 前端获取图片压缩后上传给后台
  2. 数理逻辑——PC部分
  3. UG CAD高级塑胶模具结构讲解视频教程
  4. bread是可数还是不可数_为什么bread是不可数名词,而bun,noodle是可数名词
  5. 有趣的23000----整理(04)P词根
  6. laya 3d 中模型创建/旋转产生的问题
  7. Deep Learning for Depression Recognition with Audiovisual Cues: A Review
  8. [机缘参悟-93]:时间、空间、多维度、动态、全局、系统思考模型汇总
  9. Field II 超声相控阵成像系列1——复合平面波成像(更正)
  10. SQL中得到刚刚插入的数据的id