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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

微信登录/第三方登录

發(fā)布時間:2023/12/1 综合教程 49 生活家
生活随笔 收集整理的這篇文章主要介紹了 微信登录/第三方登录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

微信登錄

  • 1、二維碼
  • 2、授權(quán)成功
  • 3、題外
  • 4、本篇用到的發(fā)送get請求的工具類

微信登錄官網(wǎng):
https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

1、二維碼

  • 點擊微信登錄,彈出微信登錄的二維碼
/*APPID:應(yīng)用唯一標(biāo)識(公司申請微信登錄成功后都有一個appid)REDIRECT_URI:請使用urlEncode對鏈接進(jìn)行處理(一般項目上線后都有一個域名(如:www.某度.com),這里就填寫需要訪問項目的域名:注意該域名對應(yīng)的項目端口必須是80端口)注意:域名后面也可以跟需要跳轉(zhuǎn)的路徑,如:http://www.某度.com/callback.html 
*/
//訪問該路徑,彈出二維碼
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_login&state=1#wechat_redirect"

樣:

2、授權(quán)成功

  • 用戶點擊同意微信登錄后可以從訪問路徑里面獲取到code
通過code,傳到后臺能獲取到openid和令牌access_token等)openid:每個微信用戶的唯一標(biāo)識,可以拿它到數(shù)據(jù)庫中查詢來判斷他以前是否登錄過access_token:令牌,可以通過他和openid獲取到微信登錄用戶的信息
  • 注:我這里是跳轉(zhuǎn)的前端頁面所以是根據(jù)href獲取的
//打印出來結(jié)果:http://域名:80端口的/callback.html?code=aaaaaaaaaaa&state=1let url = location.href;
  • 截取路徑里面的code值,拿它獲取openid
//1、發(fā)送get請求到微信平臺,拿到Openid
//注意:替換字符串里面括號內(nèi)的內(nèi)容(包含括號)
//這個地址是微信官方給的
String url ="https://api.weixin.qq.com/sns/oauth2/access_token?appid=(自己公司的APPID)&secret=(密文:公司注冊成功后也有)&code=(這里填掃碼傳來的CODE)&grant_type=authorization_code";//2、使用工具類發(fā)送get請求(工具類這本篇文章的最后),發(fā)送成功后得到的就是openid和access_token
String httpGet = HttpClientUtils.httpGet(url);//最后httpGet 結(jié)果就是這樣:我們只要openid和access_token
//注意這只是json字符串,要獲取里面的內(nèi)容需要轉(zhuǎn)成json對象
{"access_token":"bbb","expires_in":aaa,"refresh_token":"ccc","openid":"ddd"}//3、然后我們根據(jù)這個openid到數(shù)據(jù)庫中去查詢(這里有個微信登錄用戶類),判斷他以前是否已經(jīng)用微信登錄過了........ 查詢代碼略過如果以前已經(jīng)登錄過了(系統(tǒng)記錄了微信登錄信息了),那么就直接在這結(jié)束邏輯,并且跳轉(zhuǎn)到登錄過后的界面.....................//4、如果他是第一次用微信登錄,那么根據(jù)openid和access_token也是發(fā)送一個get請求。拿到到微信用戶點擊授權(quán)后,微信官網(wǎng)給你的信息
//替換括號的內(nèi)容(包括括號):這個地址和上面的是不一樣的,都是微信官方給的
String urlUser ="https://api.weixin.qq.com/sns/userinfo?access_token=(上面使用code獲取到他給你的ACCESS_TOKEN)&openid=(上面使用code獲取到他給你的OPENID)";String WxLogin = HttpClientUtils.httpGet(urlUser);/ *這坨是json字符串,也是需要轉(zhuǎn)json對象最終拿到的字符串結(jié)果:(選取我們需要的保存即可,注意:一定要保存openid){"openid":"OPENID", //微信用戶的唯一標(biāo)識"nickname":"NICKNAME", //微信用戶的昵稱"sex":1, //性別"province":"PROVINCE","city":"CITY","country":"COUNTRY","headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0","unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"}
*///5、到這基本上也就結(jié)束了,后面的邏輯不過就是像一個普通的user用戶一樣保存上面的一坨微信用戶信息。然后跳轉(zhuǎn)到登錄過后的界面即可.........

3、題外

//這個是寫給本人看的//如果需要跳轉(zhuǎn)到前臺另一個頁面在跳轉(zhuǎn)到后臺的話,就需要這樣,路徑直接寫死
//這樣避免了重新跳轉(zhuǎn)頁面,openid和access_token拿不到的問題,(直接將這兩個數(shù)據(jù)傳發(fā)到路徑里傳到前臺,到時候在獲取到路徑里面的openid然后在傳回來)
String bindUrl ="http://域名/bindle.html?access_token="+access_token+"&openid="+openid+"";

4、本篇用到的發(fā)送get請求的工具類

  • 直接拷貝使用即可
/*** 使用httpclient組件發(fā)送http請求*   get:現(xiàn)在只用到get*   post*/
public class HttpClientUtils {/*** 發(fā)送get請求* @param url 請求地址* @return 返回內(nèi)容 json*/public static String httpGet(String url){// 1 創(chuàng)建發(fā)起請求客戶端try {HttpClient client = new HttpClient();// 2 創(chuàng)建要發(fā)起請求-tetGetMethod getMethod = new GetMethod(url);getMethod.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");// 3 通過客戶端傳入請求就可以發(fā)起請求,獲取響應(yīng)對象client.executeMethod(getMethod);// 4 提取響應(yīng)json字符串返回String result = new String(getMethod.getResponseBodyAsString().getBytes("utf8"));return result;} catch (IOException e) {e.printStackTrace();}return null;}
}

總結(jié)

以上是生活随笔為你收集整理的微信登录/第三方登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。