五、Springboot 整合Shiro---03认证---第三方QQ登陆

本文档详细介绍了如何在Springboot项目中结合Shiro实现QQ第三方登录。首先,你需要在QQ互联官网注册成为开发者并创建应用,获取appid和appkey。接着,配置application.yml文件,创建参数获取类,获取code码。然后,通过code获取access_token、openid及用户信息。最后,在ShiroConf和LoginAction类中进行相应设置,完成QQ登录流程。项目源码已提供。
摘要由CSDN通过智能技术生成

本章节基于:四、Springboot 整合Shiro---02认证---记住我

在开始之前,先要理解一下oauth2:

推荐去看一下(六、授权码模式):阮一峰讲解的oauth2

下面附上一张阮一峰博客上的一张截图:

接下来为QQ第三方登陆开发做准备:

一、注册成为开发者

成为开发者 — QQ互联WIKI

二、创建应用

创建应用 — QQ互联WIKI

三、开发前准备

1、确定一下几点都完成了

申请appid和appkey

申请appid和appkey的用途

appid:应用的唯一标识。在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值。

appkey:appid对应的密钥,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值。

申请地址

http://connect.qq.com/intro/login/

申请流程

1. 点击页面上的“申请加入”按钮,申请成为开发者;

2. 申请appid(oauth_consumer_key/client_id)和appkey(auth_consumer_secret/client_secret);

(1)进入 QQ互联官网首页 页面,点击“立即添加”,在弹出的对话框中填写网站或应用的详细资料(名称,域名,回调地址);

(2)点击“确定”按钮,提交资料后,获取appid和appkey。

注意:申请appid时,登录的QQ号码将与申请到的appid绑定,后续维护均需要使用该号码。

2、在原有的代码上进行一些添加和修改

application.yml修改(redirect_uri必须与途中箭头所指地址一致)

server:
  #设置程序启动端口号
  port: 7000
beetl:
  #模板路径
  templatesPath: templates
oauth:
  qq:
    #你的appid
    client_id: 123456789
    #你的appkey
    client_secret: 123456789
    #你接收响应code码地址
    redirect_uri: http://localhost:7000/authorize/qq
    #腾讯获取code码地址
    code_callback_uri: https://graph.qq.com/oauth2.0/authorize
    #腾讯获取access_token地址
    access_token_callback_uri: https://graph.qq.com/oauth2.0/token
    #腾讯获取openid地址
    openid_callback_uri: https://graph.qq.com/oauth2.0/me
    #腾讯获取用户信息地址
    user_info_callback_uri: https://graph.qq.com/user/get_user_info

 创建参数获取类:

QQProperties.class
package com.xslde.properties;

/**
 * Created by xslde on 2018/7/21
 * QQ第三方登陆参数类
 */

public class QQProperties {

    private String client_id;
    private String client_secret;
    private String redirect_uri;
    private String code_callback_uri;
    private String access_token_callback_uri;
    private String openid_callback_uri;
    private String user_info_callback_uri;

    public String getClient_id() {
        return client_id;
    }

    public void setClient_id(String client_id) {
        this.client_id = client_id;
    }

    public String getClient_secret() {
        return client_secret;
    }

    public void setClient_secret(String client_secret) {
        this.client_secret = client_secret;
    }

    public String getRedirect_uri() {
        return redirect_uri;
    }

    public void setRedirect_uri(String redirect_uri) {
        this.redirect_uri = redirect_uri;
    }

    public String getCode_callback_uri() {
        return code_callback_uri;
    }

    public void setCode_callback_uri(String code_callback_uri) {
        this.code_callback_uri = code_callback_uri;
    }

    public String getAccess_token_callback_uri() {
        return access_token_callback_uri;
    }

    public void setAccess_token_callback_uri(String access_token_callback_uri) {
        this.access_token_callback_uri = access_token_callback_uri;
    }

    public String getOpenid_callback_uri() {
        return openid_callback_uri;
    }

    public void setOpenid_callback_uri(String openid_callback_uri) {
        this.openid_callback_uri = openid_callback_uri;
    }

    public String getUser_info_callback_uri() {
        return user_info_callback_uri;
    }

    public void setUser_info_callback_uri(St
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值