Red de conocimiento de divisas - Apertura de cuenta en divisas - ¿Cómo resolver el problema de configuración del nombre de dominio en la página de devolución de llamada de autorización de WeChat OAuth2.0?

¿Cómo resolver el problema de configuración del nombre de dominio en la página de devolución de llamada de autorización de WeChat OAuth2.0?

La solución actual es introducir una aplicación nueva y muy sencilla como servicio proxy autorizado por WeChat. Puedes hacer esto:

1. interfaz de autorización web Configúrelo en otro nombre de subdominio, como proxy.your.com

2. Luego implemente index.php en php_weixin_proxy en el índice en proxy.your.com

php_weixin_proxy.php es un archivo php muy simple, puede ver directamente el código fuente para comprender cómo se implementa. Debido al entorno actual del proyecto, utilicé PHP para completar la implementación de este servicio proxy. De hecho, puedes usar cualquier lenguaje de plataforma para completar funciones similares.

Cuando otras empresas necesiten iniciar la autorización de WeChat, la solicitud de autorización se enviará primero a proxy.your.com y luego proxy.your.com reenviará la solicitud a WeChat. p> Cuando el usuario acepta la autorización, proxy.your.com recibirá la devolución de llamada de autorización de WeChat y devolverá el resultado de la devolución de llamada (código, parámetros de estado) intactos a la empresa que inició la autorización en primer lugar.

La única diferencia es que cuando no utiliza proxy.your.com, el enlace que utiliza para iniciar la autorización de WeChat desde la aplicación debe ser así:

/connect/qrconnect? appid =xxxxx&redirect_uri=%2F&response_type=code&scope=snsapi_login&state=584bc87e11ff37492#wechat_redirect

Después de usar proxy.your.com, el enlace de autorización debería verse así:

/?appid=xxxxx&redirect_uri = %2Flogin%2Fnotify&response_type=code&scope=snsapi_base&state=584bc87e11ff37492&device=pc

En comparación con el enlace anterior:

1. el nombre de dominio de devolución de llamada de autorización del proxy;

2. Hay un parámetro de dispositivo adicional al final, que es necesario. Debido a que las direcciones de autorización de WeChat para PC y dispositivos móviles son diferentes, y el siguiente enlace se envía a proxy.your.com, debe agregar un parámetro adicional para indicarle si debe usar la PC o WeChat al reenviar la solicitud de autorización a WeChat. La dirección autorizada del terminal móvil.

1. El usuario activa una operación que requiere autorización de nuestra aplicación, como hacer clic en WeChat para iniciar sesión.

2. usuario al proveedor de WeChat Una página de autorización:

o

3. El usuario escanea el código QR en WeChat (autorización de PC, imagen superior izquierda) o hace clic en el botón de confirmación (autorización móvil). , imagen arriba a la derecha) para notificar que WeChat autoriza a la aplicación a acceder a la información de su propia cuenta WeChat

4. Después de recibir la autorización del usuario, WeChat genera un código de autorización y lo devuelve a una determinada página de la aplicación. como parámetro;

5. Después de recibir la solicitud de devolución de llamada de WeChat, la página de devolución de llamada de la aplicación obtiene el código de autorización y obtiene el token de acceso a través de la interfaz API del token de acceso proporcionada oficialmente por WeChat; p>6. Finalmente, pase el token de acceso y otra interfaz API de información de usuario proporcionada oficialmente por WeChat puede obtener la información de la cuenta WeChat del usuario.

Para implementar este proceso, primero debe solicitar una cuenta pública de WeChat para la aplicación y configurar el nombre de dominio de la implementación final de la aplicación en la opción de nombre de dominio de la página de devolución de llamada de autorización en WeChat. configuración de la cuenta pública. La descripción oficial de WeChat de esta opción es la siguiente:

Instrucciones sobre el nombre de dominio de devolución de llamada de autorización de la página web

1 Antes de que la cuenta oficial de WeChat solicite la autorización de la página web del usuario, los desarrolladores deben ir a la página. sitio web oficial de la plataforma pública primero En las opciones de configuración de "Desarrollo - Permisos de interfaz - Servicios web - Cuentas web - Autorización web para obtener información básica del usuario", modifique el nombre de dominio de devolución de llamada de autorización. Tenga en cuenta que aquí se completa el nombre de dominio (que es una cadena), no la URL, así que no agregue. Después de la configuración, OAuth2 puede autenticar las páginas /music.html y /login.html bajo este nombre de dominio. .0. Sin embargo, no se puede realizar la autenticación OAuth2.0

3. Si la autorización de inicio de sesión de la cuenta oficial se otorga a un desarrollador externo para su administración, no es necesario realizar ninguna configuración. El tercero la reemplazará. Cuenta oficial para implementar la autorización de la página web. Pero se puede ver que esta regla es extremadamente estricta. Si nuestra aplicación tiene solo un nombre de dominio cuando finalmente se implementa, entonces no habrá ningún problema con esta regla, pero considerando la complejidad de las aplicaciones futuras, podemos dividir la aplicación al comienzo del diseño de la aplicación y luego usar diferentes Negocios; se implementan utilizando diferentes nombres de dominio de segundo nivel. Por ejemplo, para una aplicación con transacciones, puede separar el registro de inicio de sesión, la gestión de transacciones y el negocio habitual y luego implementarlos de la siguiente manera:

www.your.com implementa el negocio habitual

trade.your.com implementa el negocio de gestión de transacciones;

passport.your.com implementa el negocio de registro de inicio de sesión

En este modo, si Al integrar el inicio de sesión de WeChat; Pago de WeChat, las reglas mencionadas anteriormente para autorizar nombres de dominio de páginas de devolución de llamada causarán problemas a la aplicación. Aquí: al menos se puede confirmar que tanto trade.your.com como passport.your.com requieren la autorización de WeChat del usuario presentada anteriormente, pero son dos subdominios diferentes y solo tenemos una cuenta oficial según el nombre de dominio de; la página de devolución de llamada de autorización En principio, solo puede usar un nombre de dominio, y solo si el nombre de dominio de la dirección de devolución de llamada es exactamente el mismo que esta configuración, la autorización de WeChat se puede iniciar con éxito. De lo contrario, le indicará que el parámetro rediret_uri es. incorrecto o causar el problema de no poder devolver la llamada.

Entonces, ¿cómo afrontar esta situación?

La solución actual es introducir una aplicación nueva y muy simple como servicio proxy autorizado por WeChat. Puedes hacer esto:

1. interfaz de autorización web Configúrelo en otro nombre de subdominio, como proxy.your.com

2. Luego implemente index.php en php_weixin_proxy en el índice en proxy.your.com

php_weixin_proxy.php es un archivo php muy simple, puede ver directamente el código fuente para comprender cómo se implementa. Debido al entorno actual del proyecto, utilicé PHP para completar la implementación de este servicio proxy. De hecho, puedes usar cualquier lenguaje de plataforma para completar funciones similares.

Cuando otras empresas necesiten iniciar la autorización de WeChat, la solicitud de autorización se enviará primero a proxy.your.com y luego proxy.your.com reenviará la solicitud a WeChat. p> Cuando el usuario acepta la autorización, proxy.your.com recibirá la devolución de llamada de autorización de WeChat y devolverá el resultado de la devolución de llamada (código, parámetros de estado) intacto a la empresa que inició la autorización en primer lugar.

La única diferencia es que cuando no utiliza proxy.your.com, el enlace que utiliza para iniciar la autorización de WeChat desde la aplicación debe ser así:

/connect/qrconnect? appid =xxxxx&redirect_uri=%2F&response_type=code&scope=snsapi_login&state=584bc87e11ff37492#wechat_redirect

Después de usar proxy.your.com, el enlace de autorización debería verse así:

/?appid=xxxxx&redirect_uri = %2Flogin%2Fnotify&response_type=code&scope=snsapi_base&state=584bc87e11ff37492&device=pc

En comparación con el enlace anterior:

1. el nombre de dominio de devolución de llamada de autorización del proxy;

2. Hay un parámetro de dispositivo adicional al final, que es necesario. Debido a que las direcciones de autorización de WeChat para PC y dispositivos móviles son diferentes, y el siguiente enlace se envía a proxy.your.com, debe agregar un parámetro adicional para indicarle si desea usar la PC o WeChat al reenviar la solicitud de autorización a WeChat. La dirección autorizada del terminal móvil.

Idea general del plan:

Resumen:

He probado este plan y funciona. Aunque se introduce el servicio proxy y se agrega una operación de redireccionamiento, dado que esta solicitud de autorización no es necesaria para todas las solicitudes, en realidad no tendrá mucho impacto en la experiencia del usuario, pero desde una perspectiva arquitectónica, obviamente tiene muchos beneficios. puede cooperar con la lógica de división de la aplicación e integrar las funciones de inicio de sesión y pago de la misma cuenta oficial. No es necesario solicitar una cuenta oficial separada para cada subaplicación a desarrollar (este método no es razonable para una empresa). perspectiva, y una empresa No hay necesidad de operar tantas cuentas públicas).

上篇: Cómo hacer mi álbum de fotos anual 下篇: Las fotografías del producto tomadas con mi Canon EOS600D están borrosas y carecen de textura y brillo. ¿Qué pasó?
Artículos populares