JAVA實現微信網頁授權的實列程式碼
1、需要有一個公眾號(我這裡用的測試號),拿到AppID和AppSecret;
2、進入公眾號開發者中心頁配置授權回撥域名。具體位置:介面許可權-網頁服務-網頁賬號-網頁授權獲取使用者基本資訊-修改
注意,這裡僅需填寫全域名(如www.qq.com、www.baidu.com),勿加 http:// 等協議頭及具體的地址欄位;
我們可以通過使用Ngrok來虛擬一個域名對映到本地開發環境,網址https://www.ngrok.cc/,大家自己去下載學習怎麼使用
同時還需要掃一下這個二維碼
授權步驟:
1、引導使用者進入授權頁面同意授權,獲取code
2、通過code換取網頁授權access_token(與基礎支援中的access_token不同)
3、通過網頁授權access_token和openid獲取使用者基本資訊
先看一下我的專案結構:
web.xml相關程式碼:
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 |
welcome-file >index.jsp</ welcome-file >
|
AuthUtil工具類:
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 |
|
Java實現:
1、引導使用者進入授權頁面同意授權,獲取code
這一步其實就是將需要授權的頁面url拼接到微信的認證請求接口裡面,比如需要使用者在訪問頁面 時進行授權認證
其中的scope引數有兩個值:
snsapi_base:只能獲取到使用者openid。好處是靜預設證,無需使用者手動點選認證按鈕,感覺上像是直接進入網站一樣。
snsapi_userinfo:可以獲取到openid、暱稱、頭像、所在地等資訊。需要使用者手動點選認證按鈕。
相關程式碼
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 42 43 44 45 46 |
|
2、通過第一步獲取的code換取網頁授權access_token(與基礎支援中的access_token不同)
這一步需要在控制器中獲取微信回傳給我們的code,通過這個code來請求access_token,通過access_token和openid獲取使用者基本資訊:
相關程式碼:
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
|
login.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
index.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
index1.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
index2.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
最後附上需要的jar包
到此,微信授權登入成功,如果有執行問題請自行除錯,我這邊能正常執行的