venwyhk / spring-social-wechat

基于spring-social微信第三方登录实现,支持微信开放平台、微信公众平台和企业微信。
Apache License 2.0
33 stars 8 forks source link

如何配置redirect_uri? #3

Closed tonny79 closed 5 years ago

tonny79 commented 5 years ago

您好,

我在项目中使用了您开发的这个库做微信登录,非常好用,很感谢您的分享。 目前我遇到了一个问题:我们的项目是部署在Docker容器里运行的,当用户点击“微信登录”时,系统通过这个库被定向到微信开放平台的URL,URL里面的redirect_uri被自动生成为Docker容器的内部IP,如“https%3A%2F%2F172.16.16.60%3A8443%2Fsp%2Fsignin%2F”,而实际正确的redirect_uri应该是https%3A%2F%2Fwww.hotcloud.tech%2Fsp%2Fsignin%2F。请问目前这个库可以对redirect_uri进行配置吗,这样我们可以配置正确的redirect_uri?

谢谢, 林

venwyhk commented 5 years ago

您好, 如果您的微服务系统中有gateway或者类似nginx转发机制,这类问题其实很容易解决.这也是我更推荐的方式.

除此之外,还可以通过自定义ApplicationUrl来解决.

以我的Sample代码作为修改示例,将Application.java中的:

return new ProviderSignInController(connectionFactoryLocator, usersConnectionRepository, wechatSignInAdapter);

改为:

ProviderSignInController psc = new ProviderSignInController(connectionFactoryLocator, usersConnectionRepository, wechatSignInAdapter); psc.setApplicationUrl("http://www.hotcloud.tech/sp"); return psc;

重启Sample后,redirect_uri将改为:

redirect_uri=http%3A%2F%2Fwww.hotcloud.tech%2Fsp%2Fsignin%2Fwechat

希望这能够解决您的问题.

tonny79 commented 5 years ago

非常感谢回复,按照您提供的方案问题已解决,谢谢!