ホームページ  >  記事  >  WeChat アプレット  >  ミニ プログラムでセッションを管理するにはどうすればよいですか?

ミニ プログラムでセッションを管理するにはどうすればよいですか?

青灯夜游
青灯夜游転載
2020-05-16 18:01:023196ブラウズ

ミニ プログラムでセッションを管理するにはどうすればよいですか?次の記事では、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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。