資源簡介
本人花了一天的時間整理,對于想學,或者是項目中要用到第三方登錄有很大的幫助,代碼思路非常清晰,很容易理解,你們只要修改一個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攻擊??纱鎯τ趕ession或其他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\desc
?????文件?????????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-reba
?????文件????????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\ob
?????文件?????957619??2018-03-02?14:30??pms\.git\ob
?????文件?????????58??2018-03-02?14:30??pms\.git\ob
?????文件?????????57??2018-03-02?14:29??pms\.git\ob
?????文件???????1094??2018-03-02?14:30??pms\.git\ob
?????文件????????229??2018-03-02?14:30??pms\.git\ob
?????文件????????155??2018-03-02?14:39??pms\.git\ob
?????文件????????602??2018-03-02?14:30??pms\.git\ob
?????文件????????295??2018-03-02?14:29??pms\.git\ob
............此處省略708個文件信息
- 上一篇:安卓藍牙小車或者四軸控制軟件
- 下一篇:20王道考研408操作系統.pdf
評論
共有 條評論