Cómo implementar la autenticación de inicio de sesión del subprograma WeChat
Esta vez le mostraré cómo implementar la autenticación de inicio de sesión del Programa WeChat Mini y cuáles son las precauciones para implementar la autenticación de inicio de sesión del Programa WeChat Mini. El siguiente es un caso práctico, echemos un vistazo.
Prólogo
Para facilitar que las aplicaciones del miniprograma utilicen el estado de inicio de sesión de WeChat para el inicio de sesión autorizado, el miniprograma WeChat proporciona una interfaz abierta para la autorización de inicio de sesión. A primera vista, siento que el documento es muy razonable, pero en términos de implementación, es realmente confuso y no sé cómo administrar y mantener el estado de inicio de sesión. Este artículo le enseñará paso a paso cómo acceder y mantener el estado de inicio de sesión de WeChat en los negocios. No entraré en más detalles a continuación.
Proceso de acceso
El diagrama de flujo del documento oficial aquí es bastante claro, por lo que lo elaboraremos y complementaremos directamente.
En primer lugar, cuando vea esta imagen, definitivamente notará que el mini programa se comunica e interactúa no solo con el front-end del mini programa y nuestro propio servidor, sino también con el servidor de terceros WeChat. Entonces, ¿qué papel juega el servidor WeChat en él? Repasemos juntos el proceso de autenticación de inicio de sesión y lo entenderemos.
1. Llame a wx.login para generar código
La función de la API wx.login() es generar una credencial de inicio de sesión temporal para el usuario actual. Válido por cinco años. Después de obtener estas 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
}
}
});2. openid y session_key
Primero, introduzcamos openid. Los zapatos para niños que han usado cuentas públicas deben estar familiarizados con este logotipo en la plataforma pública, se utiliza para identificar la cuenta de suscripción, la cuenta de servicio y la cuenta pequeña de cada usuario. La identificación única de las tres aplicaciones diferentes del programa, es decir, el openid de cada usuario en cada aplicación es inconsistente, por lo que en el mini programa podemos usar openid para identificar la unicidad del usuario.
Entonces, ¿para qué se utiliza session_key? Con la ID de usuario, debemos permitir que el usuario inicie sesión, luego la clave de sesión garantiza la validez de la operación de la sesión del usuario actual. Esta clave de sesión nos la distribuye el servidor WeChat.
En otras palabras, podemos usar este identificador para mantener indirectamente el estado de inicio de sesión de nuestros usuarios del subprograma. Entonces, ¿cómo obtuvimos 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]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci Después de configurar la codificación del juego de caracteres predeterminado y Codificación del juego de caracteres del lado del servidor. Si está codificando tablas y campos existentes, debe realizar los siguientes pasos:
Establezca el juego 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 juego de caracteres de la tabla de datos en utf8mb4
ALTER TABLE nombre de la tabla de datos CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;Establece el juego de caracteres del campo de la columna de datos en utf8mb4
ALTER TABLE nombre de la tabla de datos CHANGE Nombre de la columna del campo VARCHAR(n) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; COLLATE aquí se refiere al conjunto de caracteres de clasificación, que se utiliza para ordenar y comparar los caracteres almacenados. Hay dos clasificaciones de uso común para utf8mb4: utf8mb4_unicode_ci. utf8mb4_general_ci, generalmente se recomienda utilizar utf8mb4_unicode_ci porque está ordenado según el algoritmo de clasificación Unicode (UCA) estándar y se puede ordenar con precisión en varios idiomas. Para conocer las diferencias específicas entre estos dos métodos de clasificación, consulte: ¿Cuál es la diferencia entre utf8_general_ci y utf8_unicode_ci?
2 Utilice sequelize para codificar caracteres emoji en la base de datos y luego decodificarlos cuando los use
Aquí está la configuración de Sequelize, consulte la documentación de Sequelize
{
dialecto: 'mysql', // tipo de base de datos
dialectOptions : {
charset: 'utf8mb4',
collate: "utf8mb4_unicode_ci"
},
}Creo que dominas el método después de leer el caso en este artículo, más ¡Preste atención a otros artículos relacionados en Gxl.com!
Lectura recomendada:
Cómo construir un proyecto vue2.boostrap
Comparación de casos entre componentes de entrada angular y componentes declarativos