Red de conocimiento informático - Conocimiento del nombre de dominio - El proceso de obtención del token mediante el miniprograma WeChat (principio de generación del código de inicio de sesión del miniprograma)

El proceso de obtención del token mediante el miniprograma WeChat (principio de generación del código de inicio de sesión del miniprograma)

1. Antecedentes

El desarrollo web tradicional implementa la función de inicio de sesión. El método general es ingresar la contraseña de la cuenta o ingresar el número de teléfono móvil y el código de verificación por SMS para iniciar sesión.

p>

Después de que el servidor verifica la información del usuario, emite un token que representa el estado de inicio de sesión al cliente para interacciones posteriores. Cada vez que el token caduca, el usuario debe iniciar sesión nuevamente

Y en<. /p>

WeChat

En el mini programa, puede obtener fácilmente la identidad de usuario proporcionada por WeChat a través de la capacidad de inicio de sesión oficial proporcionada por WeChat y establecer rápidamente un sistema de usuario dentro del mini programa para lograr la función de inicio de sesión

La implementación del sistema de usuario del mini programa implica principalmente los conceptos de openid y código:

Llamar al método wx.login generará un código y pasará el código como parámetro. la interfaz especificada del servidor WeChat para obtener el openid del usuario

Para cada mini programa, WeChat asignará el ID de WeChat del usuario a un mini programa openid como identificador único del usuario en este mini programa

2. Proceso

La lógica de implementación específica del inicio de sesión del subprograma WeChat se muestra en la siguiente figura:

Obtenga el código del usuario a través de wx.login para determinar si el usuario está autorizado a lea la información del usuario y llame a wx.getUserInfo para leer los datos del usuario. Dado que el nombre de dominio autorizado del fondo del mini programa no puede autorizar el nombre de dominio de WeChat, necesita su propio backend para llamar al servidor WeChat para obtener información del usuario y solicitar al servidor empresarial a través del Método wx.request El backend envía el appid, el appsecret y el código al servidor WeChat. Tanto appid como appsecret son proporcionados por WeChat. Se pueden encontrar en el fondo del administrador. El servidor WeChat devolvió el openid y la clave de sesión session_key de este inicio de sesión. significa que el usuario no se ha registrado. Si hay un registro, continúe hacia abajo session_key es la clave para cifrar y firmar los datos del usuario. Por el bien de la seguridad de su propia aplicación, session_key no debe transmitirse en la red y luego generar una sesión y devolverla al subprograma. El subprograma guarda la sesión en el almacenamiento. Cuando realiza la siguiente solicitud, primero la lee del almacenamiento. y luego lo lleva al servidor para comparar la correspondencia de la sesión y luego verificar el período de validez

El diagrama de funciones más detallado es el siguiente:

3. >

En el negocio real, ¿todavía necesitamos el estado de inicio de sesión? Caducidad, el método habitual es guardar los datos del período de validez en el estado de inicio de sesión. Los datos del período de validez deben compararse con el tiempo acordado cuando el servidor verifica el inicio de sesión. state.

Este método requiere enviar el estado de inicio de sesión almacenado localmente. Vaya al servidor del miniprograma. Cuando el servidor determina que el estado de inicio de sesión no es válido, devuelve un mensaje indicando que es necesario volver a iniciar el proceso. ejecutado en el mini programa.

Otra forma es comprobar si el estado de inicio de sesión de WeChat ha caducado llamando a wx.checkSession:

Si caduca, inicie un proceso de inicio de sesión completo

. p>

Si no caduca, continúe usando el estado de inicio de sesión personalizado guardado localmente

Los beneficios de este método No es necesario que el mini servidor del programa participe en la verificación. AP se llama en el lado del mini programa. El proceso es el siguiente: