成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

微信小程序之會話處理

hoohack / 2068人閱讀

摘要:是一個用于處理微信小程序的,實(shí)現(xiàn)思路參照了騰訊云官方微信小程序云端解決方案中的會話管理場景,即這個是其版本的一種實(shí)現(xiàn)。

WechatAppSessionBundle 是一個用于處理微信小程序的 Symfony Bundle,實(shí)現(xiàn)思路參照了騰訊云官方-微信小程序云端解決方案中的 會話管理場景,即這個 Bundle 是其 PHP(Symfony) 版本的一種實(shí)現(xiàn)。(只是不知道國內(nèi)有多少使用 Symfony 的童鞋?)

微信的定位并不是 HTML5,這里很多人都有誤解。在一些實(shí)現(xiàn)上,并不能想當(dāng)然地用 HTML5 的思路來思考。比如,微信的請求接口 wx.request 并不支持 cookie 傳遞,所以會話層不能使用傳統(tǒng)的 Session 方式。 ——騰訊云官方的微信小程序云端解決方案

該 Bundle 包含的功能:

針對特定的控制器獲取微信用戶信息并校驗(yàn)合法性

將用戶信息緩存到 Redis

將用戶信息設(shè)置到 Symfony/Component/HttpFoundation/Request 對象中

安裝和配置 第一步:使用 composer 安裝 Bundle
composer require wechat-app/session-bundle
第二步:啟用 Bundle

第三步:配置依賴 Bundle

snc/redis-bundle 處理Redis操作的部分(配置)

sensio/buzz-bundle 處理 HTTP 請求的部分(可不配置)

相關(guān)依賴的深入配置,請參考其對應(yīng)的文檔。

第四步:配置
# app/config/config.yml
snc_redis:
    clients:
        default:
            type: predis
            alias: default
            dsn: "redis://passwd@localhost"

wechat_app_session:
    app_id:     "wx66666"   # 小程序的app id
    app_secret: "wx*****"   # 小程序的app secret
    key_prefix: "wx-user:"  # Redis中,用戶信息的key前綴
第五步:使用

在安裝和配置完成之后,Bundle 的功能馬上就可以投入使用了,該 Bundle 只會對實(shí)現(xiàn)了 WechatApp/SessionBundle/Controller/SessionAuthController 接口的控制器生效,對其他不是用于處理小程序請求的接口不會有影響。

處理流程請參照騰訊云提供的官方文檔。

下面舉個例子:

// src/DemoBundle/Controller/DemoController.php
namespace DemoBundleController;

use AppBundleControllerBaseController;
use SensioBundleFrameworkExtraBundleConfigurationRoute;
use SymfonyComponentHttpFoundationRequest;
use WechatAppSessionBundleControllerSessionAuthController;

/**
 * @Route("/demo")
 */
class DemoController extends Controller implements SessionAuthController
{
    /**
     * @Route("/test")
     */
    public function testAction(Request $request) 
    {
        // 從 Request 的 header 的屬性中獲取當(dāng)前請求的微信用戶信息
        $wxUser = $request->attributes->get("wx_user");
        return $this->json($wxUser);
    }
}

訪問上面 action 對應(yīng)的路由,將返回一個包含用戶信息 json,大致是:

{
  "nickName": "MJ",
  "gender": 1,
  "language": "zh_CN",
  "city": "Zhuhai",
  "province": "Guangdong",
  "country": "CN",
  "avatarUrl": "頭像URL",
  "openId": "owVxxxxxxxxxxx"
}

此時登入到 Redis 中:

keys *
1) "wx-user:session:xxxxxxxxxxx"
2) "wx-user:code:owVxxxxxxxxxxx"

wx-user:code:*** 維護(hù)用戶 openid 對應(yīng)的 session

wx-user:session:*** 保存著對應(yīng)于前者的用戶信息

以上兩個 key 都設(shè)置了過期時間,目前定為7200秒。

以上是后端接口部分的使用,小程序端的部分相對來說比較簡單。

在首次獲取用戶信息的時候,需要調(diào)用 wx.loginwx.getUserInfo 接口,把獲取到的 code、rawDatasignature 一同設(shè)置到 wx.request 接口的 header 中,設(shè)置時,有特定的名稱,分別是 X-WX-Code、X-WX-RawDataX-WX-Signature

接口返回非200的 HTTP 狀態(tài)碼時,請查看接口返回的提示信息,若請求成功,則會返回你自己編寫的接口所返回的信息

該 Bundle 暫時沒有提供小程序端的部分,小程序端的實(shí)現(xiàn)可以參考上面的說明去自行實(shí)現(xiàn),或借鑒騰訊云官方提供的一個實(shí)現(xiàn)方式,記住,是借鑒而不是照搬,因?yàn)檫@個 Bundle 并非是為了搭配騰訊云提供的實(shí)現(xiàn)方案的,另外要注意的是,其小程序端的實(shí)現(xiàn)方式只實(shí)現(xiàn)了 wx.request 接口的包裝,而關(guān)于文件上傳、WebSocket 的實(shí)現(xiàn)都還沒有包裝,使用時還是需要考慮自己完善其他請求的包裝。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/22043.html

相關(guān)文章

  • 信小程序server-2-實(shí)現(xiàn)會話

    摘要:安裝安裝及其客戶端命令行工具查看版本啟動創(chuàng)建目錄,用于數(shù)據(jù)和日志存儲啟動注首次啟動可能會花費(fèi)大概時間可以使用下面的命令來檢查是否啟動成功注默認(rèn)監(jiān)聽端口添加用戶登錄本地服務(wù)創(chuàng)建用戶退出安裝模塊實(shí)現(xiàn)小程序的會話功能 1.安裝MongoDB #安裝 MongoDB及其客戶端命令行工具 yum install mongodb-server mongodb -y #查看版本 mongod --v...

    Eminjannn 評論0 收藏0
  • 信小程序開發(fā)中的二三事網(wǎng)易云信IMSDK DEMO

    摘要:傳統(tǒng)的網(wǎng)頁編程采用的三劍客來實(shí)現(xiàn),在微信小程序中同樣有三劍客。觀察者模式不難實(shí)現(xiàn),重點(diǎn)是如何在微信小程序中搭配其特有的生命周期來使用。交互事件傳統(tǒng)的事件傳遞類型有冒泡型與捕獲型,微信小程序中自然也有。 本文由作者鄒永勝授權(quán)網(wǎng)易云社區(qū)發(fā)布。 簡介為了更好的展示我們即時通訊SDK強(qiáng)悍的能力,網(wǎng)易云信IM SDK微信小程序DEMO的開發(fā)就提上了日程。用產(chǎn)品的話說就是: 云信 IM 小程序 S...

    weij 評論0 收藏0
  • 從前端界面開發(fā)談信小程序體驗(yàn)

    摘要:在開發(fā)之前你要有微信開發(fā)者工具。同時為了更適合開發(fā)微信小程序,還對進(jìn)行了擴(kuò)充以及修改,直接幫我們把適配的一部分工作都做了,比如他的,可以根據(jù)屏幕寬度進(jìn)行自適應(yīng),規(guī)定屏幕寬為。 本文由云+社區(qū)發(fā)表 這段時間有幸加入了一個關(guān)于微信小程序的項(xiàng)目開發(fā)組,從無到有的根據(jù)文檔自行學(xué)習(xí)了小程序的開發(fā)過程,前面已經(jīng)有幾位前輩的文章珠玉在前,我這里就先從前端界面的開發(fā)方面談一談小程序以及我所遇到的問題吧...

    hellowoody 評論0 收藏0
  • 信小程序登錄那些事

    摘要:小程序的登錄跟平時自己這種登錄驗(yàn)證還不太一樣,多了一個角色,那就是微信服務(wù)器。的有效期默認(rèn)是小時,當(dāng)用戶一直在使用小程序的話會自動刷新,這個是由微信這邊來維護(hù)的。 最近團(tuán)隊(duì)在開發(fā)一款小程序,都是新手,一邊看文檔,一邊開發(fā)。在開發(fā)中會遇到各種問題,今天把小程序登錄這塊的流程整理下,做個記錄。 小程序的登錄跟平時自己APP這種登錄驗(yàn)證還不太一樣,多了一個角色,那就是微信服務(wù)器。 showI...

    kid143 評論0 收藏0
  • 理解小程序

    摘要:小程序的布局信息微信小程序中使用作為長度單位,可以根據(jù)屏幕寬度進(jìn)行自適應(yīng)。運(yùn)行環(huán)境普通都是執(zhí)行在瀏覽器的宿主環(huán)境,瀏覽器提供等對象但是小程序是運(yùn)行在微信上下文中的,沒有和。 小程序堅持著 無需下載、觸手可及、用完即走的設(shè)計理念和價值觀,幫助用戶縮短完成任務(wù)的時間。下面從以下幾點(diǎn)進(jìn)行總結(jié)??偨Y(jié)是參考三清水老師的小冊子,推薦大家去購買。寫的很棒。 1. 小程序能做什么,不能做什么? sho...

    dmlllll 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<