Cómo implementar la autenticación de inicio de sesión del subprograma WeChat
Prólogo
Para facilitar que las aplicaciones del miniprograma utilicen el estado de inicio de sesión de WeChat para la autorización de inicio de sesión, el miniprograma WeChat proporciona una interfaz abierta de autorización de inicio de sesión. Cuando leí el documento por primera vez, sentí que tenía sentido, pero la implementación era realmente confusa y no sabía cómo administrar y mantener el estado de inicio de sesión. Este artículo le enseñará cómo acceder y mantener el estado de inicio de sesión de WeChat en los negocios. No entraré en detalles a continuación.
Proceso de acceso
El diagrama de flujo en el documento oficial aquí es bastante claro. Ampliemos directamente los detalles y complementemos el diagrama.
En primer lugar, cuando vea esta imagen, definitivamente notará que la interacción de comunicación del mini programa no es solo la interfaz del mini programa y nuestro propio servidor, sino también el servidor de terceros WeChat. Entonces, ¿qué papel juega el servidor WeChat? Analicemos el proceso de autenticación de inicio de sesión para comprenderlo.
1. Llame a wx.login para generar código
wx.login() Esta API se utiliza para generar credenciales de inicio de sesión temporales para el usuario actual. Las credenciales de inicio de sesión temporales solo son válidas para. 5 minutos. Después de obtener las credenciales de inicio de sesión, podemos continuar con el siguiente paso: obtener openid y session_key
wx.login({
Success: function(loginRes) {
if (loginRes.code) {
// ejemplo: 081LXytJ1Xq1Y40sg3uJ1FWntJ1LXyth
}
}
}); y session_key
Comenzaremos con openid, que es el identificador que se utiliza para identificar a cada usuario en la plataforma pública. En la plataforma pública, se utiliza para identificar la identidad única de cada usuario en tres aplicaciones diferentes: cuenta de suscripción, cuenta de servicio y mini programa, lo que significa que el openid de cada usuario en cada aplicación es inconsistente.
Entonces, ¿cuál es el propósito de session_key? Con la ID de usuario, debemos permitir que el usuario inicie sesión. En este momento, la clave de sesión garantiza la validez de la operación de sesión realizada por el usuario actual. Esta clave de sesión nos la envía el servidor WeChat.
En otras palabras, podemos usar este identificador para mantener indirectamente el estado de inicio de sesión del usuario del miniprograma. Entonces, ¿cómo obtener esta clave de sesión? Necesitamos solicitar la interfaz de terceros proporcionada por WeChat en nuestro propio servidor para configurar la codificación del juego de caracteres predeterminado y el formato de codificación del lado del servidor
// my.cnf]
[Cliente]
Juego de caracteres predeterminado=utf8mb4
[mysql]
Juego de caracteres predeterminado=utf8mb4
[mysqld]
apretón de manos del cliente del juego de caracteres = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci Después de configurar la codificación del juego de caracteres predeterminado y el carácter del lado del servidor establezca la codificación, debe ejecutar Los siguientes pasos son necesarios si desea convertir la codificación de tablas y campos existentes:
Establezca el conjunto de caracteres de la base de datos en utf8mb4
ALTERAR EL NOMBRE DE LA BASE DE DATOS CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; Establece el conjunto de caracteres de la tabla de datos en utf8mb4
ALTERAR EL NOMBRE DE LA BASE DE DATOS DE LA TABLA CONVERTIR A CONJUNTO DE CARACTERES utf8mb4 COLLATE utf8mb4_unicode_ci Establece el conjunto de caracteres del campo de la columna de datos en utf8mb4
ALTER tabla Tabla de DATOS Nombre de campo de cambio nombre de campo VARCHAR(n) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci aquí se refiere al conjunto de caracteres de clasificación, utilizado para ordenar y comparar caracteres almacenados. Hay dos intercalaciones de uso común para utf8mb4: utf8mb4_unicode_ci y utf8mb4_general_ci. Generalmente se recomienda usar utf8mb4_unicode_ci porque se basa en el algoritmo de intercalación estándar de Unicode. Generalmente se recomienda utilizar utf8mb4_unicode_ci porque se basa en el algoritmo de clasificación Unicode estándar (UCA) y se puede utilizar para una clasificación precisa en varios idiomas. ¿Cuál es la diferencia entre utf8_general_ci y utf8_unicode_ci?
2. Codifique caracteres emoji en la biblioteca usando sequelize y luego decodifíquelos cuando se usen
La siguiente es la configuración de sequelize: mysql', // Tipo de base de datos
dialectOptions: {
charset: 'utf8mb4',
intercalar: "utf8mb4_unicode_ci"
}, p>
} Creo que después de leer los casos de este artículo, domina el método. Para obtener más información interesante, preste atención a otros artículos relacionados en Gxl.com.
Lectura recomendada:
Cómo construir un proyecto boostrap vue2.0
Comparación de casos entre componentes de entrada angular y componentes declarativos