zoukankan      html  css  js  c++  java
  • web网站使用qq第三方登录

      Html代码:
    
    <a href=’/QQlogin’>qq登录</a>
    
    //后台代码:
     @RequestMapping(value = "/QQlogin", method = RequestMethod.GET)
        public void QQLogin(HttpServletRequest requeset, HttpServletResponse response) throws IOException {
            // 响应编码
            response.setContentType("text/html;charset=utf-8");
            // 跳转QQ登录页面
            response.sendRedirect("https://graph.qq.com/oauth2.0/authorize?client_id=xxxx&redirect_uri=http://login.xxxx.com:9095/user/qq_callback&response_type=code&state=1111&scope=get_user_info,add_topic,add_one_blog,add_album,upload_pic,list_album,add_share,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_ido,get_tenpay_addr");
    
    
        }
    
        @RequestMapping(value = "/qq_callback")
        public void qqAfterlogin(HttpServletRequest request, HttpSession session) throws Exception {
    
            String code = request.getParameter("code");
        

        //下面再根据code获取token,再用token获取用户信息

    
            
        }

     

     红色部分是需要修改的部分

     

     

     

    获取Authorization Code

    请求地址
    PC网站:https://graph.qq.com/oauth2.0/authorize
    请求方法
    GET
    请求参数
    请求参数请包含如下内容:

    参数是否必须含义
    response_type 必须 授权类型,此值固定为“code”。
    client_id 必须 申请QQ登录成功后,分配给应用的appid。
    redirect_uri 必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心。注意需要将url进行URLEncode。
    state 必须 client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
    scope 可选 请求用户授权时向用户显示的可进行授权的列表。
    可填写的值是API文档中列出的接口,以及一些动作型的授权(目前仅有:do_like),如果要填写多个接口名称,请用逗号隔开。
    例如:scope=get_user_info,list_album,upload_pic,do_like
    不传则默认请求对接口get_user_info进行授权。
    建议控制授权项的数量,只传入必要的接口名称,因为授权项越多,用户越可能拒绝进行任何授权。
    display 可选 PC网站接入时使用。
    用于展示的样式。不传则默认展示为PC下的样式。
    如果传入“mobile”,则展示为mobile端下的样式。

    通过Authorization Code获取Access Token

    请求地址
    PC网站:https://graph.qq.com/oauth2.0/token
    请求方法
    GET
    请求参数
    请求参数请包含如下内容:

    参数是否必须含义
    grant_type 必须 授权类型,在本步骤中,此值为“authorization_code”。
    client_id 必须 申请QQ登录成功后,分配给网站的appid。
    client_secret 必须 申请QQ登录成功后,分配给网站的appkey。
    code 必须 上一步返回的authorization code。
    如果用户成功登录并授权,则会跳转到指定的回调地址,并在URL中带上Authorization Code。
    例如,回调地址为www.qq.com/my.php,则跳转到:
    http://www.qq.com/my.php?code=520DD95263C1CFEA087******
    注意此code会在10分钟内过期。
    redirect_uri 必须 与上面一步中传入的redirect_uri保持一致。

     
    返回说明

    如果成功返回,即可在返回包中获取到Access Token。 如:

    access_token=FE04************************CCE2&expires_in=7776000&refresh_token=88E4************************BE14

     

    参数说明描述
    access_token 授权令牌,Access_Token。
    expires_in 该access token的有效期,单位为秒。
    refresh_token 在授权自动续期步骤中,获取新的Access_Token时需要提供的参数。
  • 相关阅读:
    Python入门-函数进阶
    Python入门-初始函数
    Leetcode300. Longest Increasing Subsequence最长上升子序列
    Leetcode139. Word Break单词拆分
    Leetcode279. Perfect Squares完全平方数
    Leetcode319. Bulb Switcher灯泡开关
    Leetcode322. Coin Change零钱兑换
    二叉树三种遍历两种方法(递归和迭代)
    Leetcode145. Binary Tree Postorder Traversal二叉树的后序遍历
    Leetcode515. Find Largest Value in Each Tree Row在每个树行中找最大值
  • 原文地址:https://www.cnblogs.com/lvlv/p/10423827.html
Copyright © 2011-2022 走看看