日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

社交登录整合

發布時間:2024/10/6 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 社交登录整合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.社交登錄介紹

1.用戶在passport認證中心準備登錄時可以點擊第三方登錄按鈕跳轉到
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
引導用戶進入用戶授權頁面

2.用戶授權完成后
http://授權完成后/success?code=fef987b3f9ad1169955840b467bfc661
第三方網站將調用我們在第三方的回調地址,再將授權碼寫入到數據庫中
3.通過授權碼code發送post請求到第三方網站,換取access_token
授權碼請求公式
https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
將換取來的token寫入到我們用戶的數據庫
4.在用戶使用過程中通過access_token獲取用戶(第三方網站用戶數據)

14.整合社交登錄

1.地址一:
引導用戶與第三方平臺交互地址(第三方平臺地址,頁面上有我們的授權信息)
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
2. 地址二:
授權完成后返回授權碼
http://授權完成后/success?code=fef987b3f9ad1169955840b467bfc661
3.地址三:
https://api.weibo.com/oauth2/access_token
使用獲得的授權碼code交換獲得access_token的地址,需要加入client_secret應用密匙,并且使用post請求進行交換,access_token
4.地址四:
https://api.weibo.com/2/users/show.json
使用access_token換取用戶信息地址

@RequestMapping("vlogin")public String vlogin(String code,HttpServletRequest request){//授權碼換取access_tokenString s3="https://api.weibo.com/oauth2/access_token?";//?client_id=3193708961&client_secret=df2b2370fbd3483cdd8a9eb422ca325&grant_type=authorization_code&redirect_uri=http://passport.gmall.com:8085/vlogin&code=CODE";HashMap<String, String> paramMap = new HashMap<>();paramMap.put("client_id","3193708961");paramMap.put("client_secret","df2b2370fbd3483cdd8a9eb422ca3253");paramMap.put("grant_type","authorization_code");paramMap.put("redirect_uri","http://passport.gmall.com:8085/vlogin");paramMap.put("code",code);String access_token_json = HttpclientUtil.doPost(s3, paramMap);Map<String,String> access_map = JSON.parseObject(access_token_json, Map.class);//access_token獲取用戶信息String access_token = access_map.get("access_token");String uid = access_map.get("uid");String s4="https://api.weibo.com/2/users/show.json?access_token="+access_token+"&uid="+uid;String s = HttpclientUtil.doGet(s4);Map<String,Object> map = JSON.parseObject(s, Map.class);//將用戶信息保存到數據庫,將用戶類型設置為微博用戶UmsMember umsMember = new UmsMember();umsMember.setSourceType("2");umsMember.setAccessCode(code);umsMember.setAccessToken(access_token);umsMember.setNickname((String)map.get("screen_name"));umsMember.setSourceUid(((Long)map.get("id")));umsMember.setCity((String) map.get("location"));umsMember.setGender((String) (map.get("gender")));UmsMember umsCheck = new UmsMember();umsCheck.setSourceUid(umsMember.getSourceUid());UmsMember checkUmsMember = userService.checkOauthUser(umsCheck);if(checkUmsMember==null){userService.addOldOauthUser(umsMember);}else{umsMember=umsCheck;}//生成JWT的token,并且重定向到首頁,攜帶tokenString token="";String memberId = umsMember.getId();String nickname = umsMember.getNickname();Map<String,Object> userMap=new HashMap<>();userMap.put("memberId",memberId);userMap.put("nickname",nickname);String ip = request.getHeader("x-forwarded-for");//從request中獲取IPif(StringUtils.isBlank(ip)) {ip=request.getRemoteAddr();if(StringUtils.isBlank(ip)) {ip="127.0.0.1";}}//按照設計的算法對參數進行加密后,生成tokentoken = JwtUtil.encode("2019gmall0105", userMap, ip);return "redirect:http://search.gmall.com:8083/index?token="+token;}

總結

以上是生活随笔為你收集整理的社交登录整合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。