免费99精品国产自在现线观看_人妻少妇精品视频区性色_丝袜 屁股 在线 国产_无码视频在线免费观看

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

1.在pom.xml中添加依賴

<dependency>
<groupId>com.github.binarywang</groupId>
<artifacted>weixin-java-mp</artifacted>
<wersion>2.7.0</version>
</dependency>

2.輸入網(wǎng)址:https://github.com/Wechat-Group/WxJava/wiki,

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

點開第一個,進(jìn)入以下頁面。并選擇OAuth2網(wǎng)頁授權(quán)。

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

3,寫Controller文件

4.寫配置文件:WxMpService 是一個接口,接口是一個特殊的類,也可以用new關(guān)鍵字后面跟他的實現(xiàn)類WxMpServiceImpl 創(chuàng)建對象wxMpService,

WxMpConfigStorage是對象WxMpService的屬性。appId,Secret是 wxMpConfigStorage的屬性

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

wxMpConfigStorage是一個接口,wxMpInMemoryConfigStorage是它的實現(xiàn)類。new出的對象wxMpConfigStorage是代表微信公眾賬號的類。

他的屬性就是微信公眾賬號的屬性。包括appId,Secret.

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

4。在配置文件中application.yml配置

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

5.(1)寫一個與“微信賬號相關(guān)的配置類”取名叫:WechatAccountConfig(自定義),@Data注解的使用可簡化代碼,不必寫set和get方法。

@component和@ConfigurationProperties是注入config的兩個不可缺少的注解。下圖只展示了appId(公眾平臺id)和mpAppSecret(公眾平臺密匙)兩個屬性,

其實還有openAppId(開放平臺Id), openAppSecret(開放平臺密匙)等與微信賬號相關(guān)的一些屬性。

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

(2)使用WechatAccountConfig,注意:@Autowired注解的使用代替了 WechatAccountConfig accountConfig=new WechatAccountConfig.(使用new關(guān)鍵字創(chuàng)建實例)

(3)wxMpConfigStorage.setAppId(accountConfig.getMpAppId);//將微信公眾號的屬性賦給wxMpConfigStorage的意義是便于在控制臺顯示輸出結(jié)果。

wxMpConfigStorage是一個返回值,類似于一個盒子里面包裝了各種屬性。

(4)因為不同的appId對應(yīng)于不同的openId.,例mpAppId(微信公眾平臺)和openAppId(微信開放平臺)對應(yīng)的openId是不同的,寫WechatMpConfig配置的目的是將appId賦值給wxMpService,讓它知道 要獲取哪個appId的openAppId,再獲取openId。

wxMpOAuth2AccessToken=wxMpService.oauth2getAccessToken(code);

String openId=wxMpOAuth2AccessToken.getOpenId();

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

6.

構(gòu)造網(wǎng)頁授權(quán)url

首先構(gòu)造網(wǎng)頁授權(quán)url,然后構(gòu)成超鏈接讓用戶點擊:

WxMpService wxMpService = ...;String url = ...; String redirectUrl=wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAuth2Scope.SNSAPI_USERINFO, null)redirect_uri(redirectUrl)是用戶授權(quán)后重定向的回調(diào)鏈接地址,即引導(dǎo)用戶在微信中點擊的地址,url是參數(shù),wxMpService通過方法oauth2buildAuthorizationUrl將url賦給redirectUrl

獲得access token

當(dāng)用戶同意授權(quán)后,會回調(diào)所設(shè)置的url并把a(bǔ)uthorization code傳過來,然后用這個code獲得access token,其中也包含用戶的openid等信息

WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(code);//

獲得用戶基本信息

WxMpUser wxMpUser = wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);代碼如下所示:

使用SDK方式進(jìn)行微信授權(quán)(使用sdk方式進(jìn)行微信授權(quán)登錄)

controller層的代碼說明:

1.redirectUrl是用戶授權(quán)后重定向的回調(diào)鏈接地址,即引導(dǎo)用戶在微信中點擊的地址,url和returnUrl是參數(shù),wxMpService通過方法oauth2buildAuthorizationUrl將url和returnUrl

賦給redirectUrl,例:http://127.0.0.1/sell/wechat/authorize?returnUrl=www.imooc.com,這就是一個redirectUrl,其中url=http://127.0.0.1/sell/wechat/authorize也可以使用外網(wǎng)地址:url=http://sell/natapp4.cc/sell/wechat/authorize,這里的returnUrl是慕課網(wǎng)的地址,也可以寫其他網(wǎng)站的地址。程序員根據(jù)需要傳參。因此redirectUrl,url和returnUrl是完全不同的概念。

2.String redirectUrl=wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAuth2Scope.SNSAPI_USERINFO, returnUrl)

參數(shù)state的是我們傳遞什么,就會回傳什么,由于我們傳遞的參數(shù)是returnUrl,所以要把returnUrl回傳過來,使用 urlEncoder 對returnUrl鏈接進(jìn)行處理.

例當(dāng)用戶點擊:http://127.0.0.1/sell/wechat/authorize?returnUrl=www.imooc.com,成功進(jìn)入后,地址欄就會反饋給我們一個地址:

www.imooc.com?openId=......(returnUrl被回傳)

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
在線咨詢
分享本頁
返回頂部