ホームページ > 記事 > WeChat アプレット > ミニ プログラムでセッションを管理するにはどうすればよいですか?
ミニ プログラムでセッションを管理するにはどうすればよいですか?次の記事では、WeChat アプレット開発のためのセッション管理に関するチュートリアルを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
WeChat アプレットの開発では、wx.request() によって開始される各リクエストはサーバーの異なるセッションであり、WeChat アプレットはセッション情報を戻しません。セッションはプロジェクト内でユーザー情報を保存するために使用されるため、それ以降のリクエストはログインしないことと同じになります。
ここでのセッションは、wx.login() メソッドを通じてミニ プログラムによって維持されるセッションではなく、独自のサーバー側セッションであることに注意してください。
通常の状況では、クライアントがサーバーへのリクエストを開始すると、セッション情報が Cookie に保存され、リクエスト ヘッダーの形式でサーバーに戻され、リクエスト内の特定の情報が返されます。 header はセッション ID です。下の図に示すように
#赤色の部分は、リクエストを行うときにサーバーに返されるリクエスト ヘッダーを運ぶ必要があることを示しています。必要なのは JESSIONID の値です。たまたま、WeChat アプレットもリクエスト ヘッダーのサポートを提供しています。
解決策:
1. ユーザーがログインすると、サーバーはユーザーの sessionId を返します。
2. アプレットは sessionId を保存し、後続の各リクエストのリクエスト ヘッダーに sessionId を含めます
サーバーのキー コード:
セッション ID の取得方法。リクエスト オブジェクトを取得すれば簡単に取得できます。
Sting sessionId = request.getSession().getId();
セッション ID を返します
...//登录时的业务代码 response.getWriter.write(sessionId);//把sessionId返回给前台
アプレットにログインした後、セッション ID をグローバル変数、app.js グローバル変数を保存するのに適した場所です。
...//登录后的逻辑处理 getApp().globalData.header.Cookie = \'JSESSIONID=\' + _data.sessionId;
app.js のコード
globalData:{ header:{\'Cookie\': \'\'} //这里还可以加入其它需要的请求头,比如\'x-requested-with\': \'XMLHttpRequest\'表示ajax提交,微信的请求时不会带上这个的 },
アプレットをリクエストするときにセッション ID を取得する
var header = getApp().globalData.header; //获取app.js中的请求头 wx.request({ url: localhost:8080/xx/xx, header: header, //请求时带上这个请求头 success:function(res){ } }
独自のリクエスト情報をカプセル化し、いくつかの共通ロジックを処理することをお勧めします。
推奨事項: 「 ミニ プログラム開発チュートリアル 」
以上がミニ プログラムでセッションを管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。