이전에 내 session
是仿照 cnodejs
的源码处理的,使用的 express-session
、cookie
获取信息。
现在我想增加一个微信小程序的登录接口,维护登录状态。小程序不能使用 cookie
WeChat 팀이 weapp 세션을 제공했습니다
여러분에게 묻고 싶습니다. 이제 무엇을 바꿔야 할까요? 둘 다에만 적합합니다
大家讲道理2017-05-16 13:23:21
http 세션의 원리를 잘 알고 있다면 세션 문제는 쉽게 풀 수 있습니다. 일반적인 세션 보존 방법은 브라우저가 서버에 대한 http 요청을 시작할 때 sessionid가 http 헤더 쿠키 매개변수에 포함되어 있는지 확인하는 것입니다. sessionid가 있는 경우 이를 기반으로 서버 측에 저장된 세션을 확인합니다. 세션 ID는 현재 세션에 대한 일부 정보를 저장합니다. sessionid가 존재하지 않으면 서버는 하나를 할당하여 쿠키 필드에 기록하고 다음에 다른 요청을 시작할 때 브라우저가 이를 가져옵니다. 미니 프로그램의 모든 요청은 wx.request API를 통해 시작됩니다. 서버에 요청할 때마다 Cookie라는 http 헤더도 추가하도록 wx.request API를 래핑하면 서버를 변경할 필요가 없습니다. 서버에서 할당한 세션 ID는 wx.setStorageSync API를 사용하여 WeChat 클라이언트에 저장됩니다.
http://www.wxapp-union.com/ar...
즉, 클라이언트 WeChat 애플릿은 sessionid 저장 문제를 해결합니다. 서버 측에서 nodejs로 구현되는 세션 기능은 일반 세션 구현과 다르지 않습니다. 미니 프로그램에서는 서버를 요청할 때마다 sessionid를 함께 보냅니다. 서버에서는 먼저 보낸 sessionid 매개 변수가 있는지 확인하고 없으면 계속해서 sessionid를 할당하여 보냅니다. 클라이언트에게 WeChat 애플릿을 제공합니다. 애플릿에 응답이 수신될 때마다 설정한 세션 ID가 있는지 판단하여 로컬에 저장하고 다음 요청과 함께 전송합니다. .
일반적으로 브라우저의 쿠키는 사용자를 식별하기 위해 sessionid만 저장하고 이를 서버로 전송합니다. 물론 미니 프로그램이 세션을 제공할 때마다 wx.setStorageSync API를 사용하여 WeChat 클라이언트에 저장할 수 있습니다. 쿠키 대신.