摘要:開始之前,請(qǐng)一定仔細(xì)閱讀微信開發(fā)者文檔文檔中,總共寫了幾個(gè)步驟通過和需要跳轉(zhuǎn)的路由去請(qǐng)求授權(quán)授權(quán)之后跳轉(zhuǎn)路由中返回的注前端只需要知道這兩個(gè)步驟根據(jù)獲取根據(jù)獲取用戶信息授權(quán)前端發(fā)起授權(quán)請(qǐng)求。
1、開始之前,請(qǐng)一定仔細(xì)閱讀微信開發(fā)者文檔
文檔中,總共寫了幾個(gè)步驟:1、通過appId和需要跳轉(zhuǎn)的路由去請(qǐng)求授權(quán)
2、授權(quán)之后跳轉(zhuǎn)路由中返回的code 注:前端只需要知道這兩個(gè)步驟
3、根據(jù)code獲取access_token
4、根據(jù)access_token獲取用戶信息(snsapi_userinfo授權(quán))
2、前端發(fā)起授權(quán)請(qǐng)求。這一步需要前端拼湊路由,并且將頁面跳轉(zhuǎn)到拼湊路由,路由規(guī)則如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的公眾appId號(hào)&redirect_uri=你的回調(diào)路由&response_type=code&scope=你選擇的方式&state=STATE#wechat_redirect
注 授權(quán)方式可選擇為snsapi_userinfo或者snsapi_base,差別請(qǐng)看文檔跳轉(zhuǎn)之后授權(quán)頁面如下(開發(fā)者工具效果)
3、點(diǎn)擊同意之后,會(huì)根據(jù)你之前拼湊的回調(diào)路由返回code,如下:
http://test.***.com/index?code=021Azdiu12zdXd05kkju1ZYkiu1AzdiR&state=1
4、將路由中的code直接傳遞給后端,讓后端做獲取用戶信息的系列的邏輯處理。
注:如下是laravel中間件中處理方式,session只用于這次請(qǐng)求,也可以將用戶的微信信息放在request中到controller進(jìn)行邏輯處理,看個(gè)人喜好
public function handle($request, Closure $next, $scopes = null) { $wechatCacheKey = "wechat.oauth_user.default"; if (config("qa.mock_user") == 1){ $user = new SocialiteUser(config("wechat.mock_user")); } else { $code = $request->get("code", ""); if ($code === ""){ $appId = $this->config["app_id"]; return Response::toJson(["aid" => $appId], "請(qǐng)重新獲取授權(quán)CODE!",10006); } // 開始拉取用戶信息 $app = Factory::officialAccount($this->config); $user = $app->oauth->user(); } session([$wechatCacheKey => $user]); } return $next($request); }
注:這個(gè)例子只是寫了授權(quán)的邏輯,token相關(guān)驗(yàn)證我已經(jīng)做了剔除
坑點(diǎn):1、vue的路由會(huì)將code拼接在url和#之間,如www.****.com/?code=XXXXX/#/index,這個(gè)code需要多帶帶處理
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/31710.html
摘要:前提了解微信這個(gè)過程必須要明白感謝超神的圖片從流程我們可以看到,回調(diào)域名其實(shí)就是我們的網(wǎng)頁授權(quán)域名。 承認(rèn)有點(diǎn)標(biāo)題黨了。這次開發(fā)一個(gè)項(xiàng)目遇到問題,以前有兩個(gè)微信老項(xiàng)目基于yaf,域名為m.baidu.com(做示例),然后網(wǎng)頁授權(quán)域名填的是m.baidu.com,而這次新開發(fā)的項(xiàng)目是基于laravel,那么域名為wechat.baidu.com,但是網(wǎng)頁授權(quán)域名怎么辦,這就坑爹了。當(dāng)然...
摘要:業(yè)務(wù)中前后端分離下的微信授權(quán)流程記錄這個(gè)是微信授權(quán)的流程我覺得微信的文檔授權(quán)流程還算清晰易懂,可是不太清楚具體是哪部分前端做,哪部分后端做導(dǎo)致在業(yè)務(wù)中,折騰了不少時(shí)間,特此記錄一下業(yè)務(wù)實(shí)踐。 業(yè)務(wù)中前后端分離下的微信授權(quán)流程記錄 這個(gè)是微信授權(quán)的流程 https://mp.weixin.qq.com/wiki... https://mp.weixin.qq.com/wiki... 我覺...
摘要:目前正在寫一個(gè)微信公眾號(hào)的小項(xiàng)目,記錄一下遇到的問題和解決方法主要是前端。前端提交時(shí)使用,在后端再取出對(duì)應(yīng)的微信支付看了下文檔,以前是需要用喚起支付,而現(xiàn)在則是把微信內(nèi)置到了微信的瀏覽器中。 目前正在寫一個(gè)微信公眾號(hào)的小項(xiàng)目,記錄一下遇到的問題和解決方法(主要是前端)。內(nèi)容持續(xù)更新中~ 主要實(shí)現(xiàn) 前后端分離前端為 SPA 單頁面使用微信的JSSDK微信支付 技術(shù)方案 后端使用 php ...
摘要:目前正在寫一個(gè)微信公眾號(hào)的小項(xiàng)目,記錄一下遇到的問題和解決方法主要是前端。前端提交時(shí)使用,在后端再取出對(duì)應(yīng)的微信支付看了下文檔,以前是需要用喚起支付,而現(xiàn)在則是把微信內(nèi)置到了微信的瀏覽器中。 目前正在寫一個(gè)微信公眾號(hào)的小項(xiàng)目,記錄一下遇到的問題和解決方法(主要是前端)。內(nèi)容持續(xù)更新中~ 主要實(shí)現(xiàn) 前后端分離前端為 SPA 單頁面使用微信的JSSDK微信支付 技術(shù)方案 后端使用 php ...
摘要:微信提供了作為識(shí)別用戶身份的憑證,可以結(jié)合設(shè)計(jì)一套用戶身份權(quán)限認(rèn)證機(jī)制。認(rèn)證免疫跨站請(qǐng)求偽造,而認(rèn)證則存在遭受的可能性。此處的是引導(dǎo)用戶進(jìn)入授權(quán)頁面后微信服務(wù)器附加上去的,詳細(xì)方法見微信公眾平臺(tái)的微信授權(quán)網(wǎng)頁文檔。 項(xiàng)目背景 最近在開發(fā)一個(gè)微信公眾號(hào)商城,在調(diào)用下單、支付、查詢訂單等等接口時(shí),需要驗(yàn)證用戶的身份。微信提供了openid作為識(shí)別用戶身份的憑證,可以結(jié)合openid設(shè)計(jì)一套...
閱讀 722·2021-11-24 09:39
閱讀 3586·2019-08-30 15:53
閱讀 2597·2019-08-30 15:44
閱讀 3315·2019-08-30 12:54
閱讀 2310·2019-08-29 12:23
閱讀 3379·2019-08-26 14:05
閱讀 2183·2019-08-26 13:36
閱讀 3530·2019-08-26 13:33