一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java實現 微博登錄、微信登錄、qq登錄實現代碼

java實現 微博登錄、微信登錄、qq登錄實現代碼

2020-06-22 12:4451CTO JAVA教程

這篇文章主要介紹了java實現 微博登錄、微信登錄、qq登錄實現代碼的相關資料,需要的朋友可以參考下

微信,微博,QQ,這是現在目前用的最多的手機 APP,我們做產品哪能不跟他們不沾邊,對于登錄,我想誰也不想要多少個帳號密碼,根本記不住!

為了增加用戶體驗,用戶能夠快速的注冊登錄,第三方賬號進行登錄注冊的的需求也就由此而誕生

java實現 微博登錄、微信登錄、qq登錄實現代碼

1、微信

 1) 微信登錄也是最坑人的,需要花300大洋成為開發者賬戶,沒辦法誰讓微信用戶群體大呢所以也就只好認了;然后登錄網站后臺需要創建網站應用,填寫授權回調域(登錄網站的域名)只填寫域名即可

申請地址: https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN

 2)查看微信提供的接口,寫java代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public void wx() {
 try {
  response.sendRedirect("https://open.weixin.qq.com/connect/qrconnect?appid="
   + ShareLoginDict.WEIXINKEY.getState()
   + "&redirect_uri="
   + URLEncoder.encode(ShareLoginDict.WEIXINURL.getState())
   + "&response_type=code&scope=snsapi_login&state=66666#wechat_redirect");
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 
@Override
 public Result userwx(String return_code) {
 Result result = new Result();
 Map<String, Object> token = (Map<String, Object>) WeiXinAPI
  .getToken(return_code);
 if (token != null && token.get("access_token") != null) {
  Map<String, Object> user = (Map<String, Object>) WeiXinAPI
   .getWxUser(token.get("access_token").toString(),
    token.get("openid").toString());
  if (user != null) {
  result.addModel("openid", user.get("openid"));
  result.addModel("nickname", user.get("nickname"));
  result.addModel("headimgurl", user.get("headimgurl"));
  result.addModel("data", "data_success");
  }else{
  result.addModel("data", "data_null");
  }
 }else{
  result.addModel("data", "data_null");
 }
 return result;
 }

當用戶通過微信登錄時,調用微信接口獲取用戶接口返回微信端的openid,昵稱,頭像;然后將此信息存入到瀏覽器的cookie中,當用戶瀏覽其他信息時,辨別如果是用戶是用微信登錄的,攔截器直接從cookie中獲取用戶的信息顯示昵稱和頭像,并同時判斷該openid是否和數據庫中用戶做綁定,如果沒有綁定提示用戶注冊。

2、qq登錄

 1)qq互聯創建應用

接入QQ登錄前,網站需首先進行申請,獲得對應的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/

 2)查看QQ提供的接口,寫java代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public void qq() {
 try {
  response.sendRedirect("https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id="
   + ShareLoginDict.QQKEY.getState()
   + "&redirect_uri="
   + ShareLoginDict.QQURL.getState() + "&scope=get_user_info");
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 
@Override
 public Result userqq(String return_code) {
 Result result = new Result();
 Map<String, Object> token = (Map<String, Object>) QQAPI
  .getToken(return_code);
 if (token != null && token.get("access_token") != null) {
  Map<String, Object> tokenme = (Map<String, Object>) QQAPI
   .getTokenMeOpenId(token.get("access_token").toString());
  if (tokenme != null && tokenme.get("openid") != null) {
  Map<String, Object> user = (Map<String, Object>) QQAPI
   .getQqUser(token.get("access_token").toString(),
    tokenme.get("openid").toString());
  if (user != null) {
   result.addModel("openid", tokenme.get("openid"));
   result.addModel("nickname", user.get("nickname"));
   result.addModel("figureurl", user.get("figureurl"));
   result.addModel("data", "data_success");
  }else{
   result.addModel("data", "data_null");
  }
  }else{
  result.addModel("data", "data_null");
  }
 
 }else{
  result.addModel("data", "data_null");
 }
 return result;
 }

當用戶通過QQ登錄時,調用QQ接口獲取用戶接口返回QQ端的openid,昵稱,頭像;然后將此信息存入到瀏覽器的cookie中,當用戶瀏覽其他信息時,辨別如果是用戶是用微信登錄的,攔截器直接從cookie中獲取用戶的信息顯示昵稱和頭像,并同時判斷該openid是否和數據庫中用戶做綁定,如果沒有綁定提示用戶注冊。

3 微博登錄

 1)微博創建應用

  申請地址:http://open.weibo.com/authentication

 2)查看微博提供的接口,寫java代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public void wb() {
 try {
  response.sendRedirect("https://api.weibo.com/oauth2/authorize?client_id="
   + ShareLoginDict.WEIBOKEY.getState()
   + "&redirect_uri="
   + ShareLoginDict.WEIBOURL.getState()
   + "&response_type=code");
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 
@Override
 public Result userwb(String return_url, String return_code) {
 Result result = new Result();
 Map<String, Object> token = (Map<String, Object>) WeiBoAPI.getToken(
  return_url, return_code);
 if (token != null && token.get("access_token") != null) {
  Map<String, Object> user = (Map<String, Object>) WeiBoAPI
   .getWbUser(token.get("access_token").toString(),
    token.get("uid").toString());
  if (user != null) {
  result.addModel("name", user.get("screen_name"));
  result.addModel("pic", user.get("avatar_large"));
  result.addModel("idstr", user.get("idstr"));
  result.addModel("data", "data_success");
  }else{
  result.addModel("data", "data_null");
  }
 }else{
  result.addModel("data", "data_null");
 }
 return result;
 }

當用戶通過微博登錄時,調用微博接口獲取用戶接口返回微博端的idstr,昵稱,頭像;然后將此信息存入到瀏覽器的cookie中,當用戶瀏覽其他信息時,辨別如果是用戶是用微信登錄的,攔截器直接從cookie中獲取用戶的信息顯示昵稱和頭像,并同時判斷該openid是否和數據庫中用戶做綁定,如果沒有綁定提示用戶注冊。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性欧美金发洋妞xxxxbbbb | 精品国产国偷自产在线观看 | 成人动漫在线免费看 | 国产白虎| 天天操天天射天天爽 | 久久久精品国产免费A片胖妇女 | 扒开斗罗美女了的胸罩和内裤漫画 | 四虎影视入口 | 99视频在线观看免费视频 | 亚洲haose在线观看 | 日韩一区二区三 | 国产精品久久久久久久免费大片 | 五月激激激综合网色播免费 | 青青青青久久国产片免费精品 | 高h视频免费观看 | 日本xx高清视频免费观看 | 国产91一区二区在线播放不卡 | 亚洲精品在线播放 | 好爽好深好猛好舒服视频上 | 日韩欧美中文字幕一区二区三区 | 亚洲高清视频免费 | 国产专区视频在线观看 | 亚洲国产在线观看免费视频 | 欧美黑人ⅹxxx片 | 2048论坛永久入口 原创合集 | 亚洲成年网站在线777 | 色天天综合色天天看 | 精品视频久久久久 | 楚乔传第二部全60集免费观看 | 国产综合色在线视频区色吧图片 | 亚洲电影成人 成人影院 | 国产欧美一区二区三区久久 | 调教扩张宫颈女人惨叫 | jzzjzz视频免费播放 | xxxxx性中国hd | 亚洲AV无码乱码在线观看浪潮 | 国产传媒在线播放 | 午夜福利视频极品国产83 | 欧美一区二区三区精品影视 | 男人好大好硬好爽免费视频 | 动漫美女被褥吸奶漫画漫画 |