• 大小: 48.08MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-16
  • 语言: 其他
  • 标签: ssm  

资源简介

本人花了一天的时间整理,对于想学,或者是项目中要用到第三方登录有很大的帮助,代码思路非常清晰,很容易理解,你们只要修改一个Ouath.properties配置文件,将里面的信息配置成自己的即可。

资源截图

代码片段和文件信息

package com.peace.pms.controller;

import com.alibaba.fastjson.JSONobject;
import com.peace.pms.oauth.OauthBaidu;
import com.peace.pms.oauth.OauthQQ;
import com.peace.pms.util.TokenUtil;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.UnsupportedEncodingException;

@Controller
@RequestMapping(“/api/baidu“)
public class OauthBaiduController {
    //OAuth2.0标准协议建议,利用state参数来防止CSRF攻击。可存储于session或其他cache中
    private static final String SESSION_STATE = “_SESSION_STATE_BAIDU_“;
    private static Logger log = LoggerFactory.getLogger(OauthBaiduController.class);

    @RequestMapping(“/callback“)
    @ResponseBody
    public String callback(HttpServletRequest request){
        String code = request.getParameter(“code“);
        String state = request.getParameter(“state“);
        // 取消了授权
        if (StringUtils.isBlank(state)||StringUtils.isBlank(code)){
            return “取消了授权“;
        }
        //清除state以防下次登录授权失败
        //session.removeAttribute(SESSION_STATE);
        //获取用户信息
        try{
            JSONobject userInfo = OauthBaidu.me().getUserInfoByCode(code);
            log.debug(userInfo.toString());
            String type = “baidu“;
            // 将相关信息存储数据库...
            return userInfo.toString();
        }catch(Exception e){
            e.printStackTrace();
        }
        //这里你们可以自己修改,授权成功后,调到首页
        return “error“;
    }

    /**
     * 构造授权请求url
     * @return void    返回类型
     * @throws
     */
    @RequestMapping(“/login“)
    public String index(HttpServletRequest request HttpServletResponse response){
        String state = TokenUtil.randomState();
        //state就是一个随机数,保证安全
        try {
            String url = OauthBaidu.me().getAuthorizeUrl(state);
            return “redirect:“+url;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return “redirect:/index.jsp“;
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件          7  2018-03-02 14:39  pms\.git\COMMIT_EDITMSG

     文件        296  2018-03-02 14:39  pms\.git\config

     文件         73  2018-03-02 14:27  pms\.git\description

     文件         98  2018-03-02 14:29  pms\.git\FETCH_HEAD

     文件         23  2018-03-02 14:29  pms\.git\HEAD

     文件        478  2018-03-02 14:27  pms\.git\hooks\applypatch-msg.sample

     文件        896  2018-03-02 14:27  pms\.git\hooks\commit-msg.sample

     文件       3327  2018-03-02 14:27  pms\.git\hooks\fsmonitor-watchman.sample

     文件        189  2018-03-02 14:27  pms\.git\hooks\post-update.sample

     文件        424  2018-03-02 14:27  pms\.git\hooks\pre-applypatch.sample

     文件       1642  2018-03-02 14:27  pms\.git\hooks\pre-commit.sample

     文件       1348  2018-03-02 14:27  pms\.git\hooks\pre-push.sample

     文件       4898  2018-03-02 14:27  pms\.git\hooks\pre-rebase.sample

     文件        544  2018-03-02 14:27  pms\.git\hooks\pre-receive.sample

     文件       1492  2018-03-02 14:27  pms\.git\hooks\prepare-commit-msg.sample

     文件       3610  2018-03-02 14:27  pms\.git\hooks\update.sample

     文件      29540  2018-03-02 14:38  pms\.git\index

     文件        240  2018-03-02 14:27  pms\.git\info\exclude

     文件       1171  2018-03-02 14:39  pms\.git\logs\HEAD

     文件        828  2018-03-02 14:39  pms\.git\logs\refs\heads\master

     文件        618  2018-03-02 14:39  pms\.git\logs\refs\remotes\orign\master

     文件        245  2018-03-02 14:30  pms\.git\objects\02\b14fe8dd7441e97cbe80e1151749ecbafe764f

     文件     957619  2018-03-02 14:30  pms\.git\objects\03\b2d4a30de3a52524d1971b926ff46305abe09c

     文件         58  2018-03-02 14:30  pms\.git\objects\05\5bb81e643987e9357ebf3b7a5496ebad9407b6

     文件         57  2018-03-02 14:29  pms\.git\objects\06\e66d697e4d4f61c7a5f7083ab8c2f5763ebe55

     文件       1094  2018-03-02 14:30  pms\.git\objects\07\71c0076bed345df26fc9cb2c6b2e369c8a39a7

     文件        229  2018-03-02 14:30  pms\.git\objects\07\af11926b27268ffda89ae82e0faf3aef1a279f

     文件        155  2018-03-02 14:39  pms\.git\objects\09\506ee07afdce7fc14ca4275717f0be63bce310

     文件        602  2018-03-02 14:30  pms\.git\objects\0b\066fa2e875ca544e5a84159ab84b7b8c924985

     文件        295  2018-03-02 14:29  pms\.git\objects\0d\a33c4fde84ff3bf89891e74d8ab154e1b4a463

............此处省略708个文件信息

评论

共有 条评论