时间:2023-05-12 05:15:02 | 来源:网站运营
时间:2023-05-12 05:15:02 来源:网站运营
微信小程序注册入口与登陆:<template> <view class="container"> <view class="button-sp-area"> <u-button class="custom-style" open-type="getUserInfo" @getuserinfo="loginUserInfo">登录</u-button> </view> </view></template><script> export default { data() { return { show:false, userInfo: {}, hasUserInfo: false } }, methods: { loginUserInfo (detail) { console.log(detail) /* 微信登录 */ wx.login({ timeout: 10000, success(res) { if(res.code){ wx.request({ url: 'http://localhost:8090/wxlogin', data: {"code": res.code}, success:function(res){ console.log( res) }, fail: function(e) { console.log(e) } }) } else { console.log('登录失败!' + res.errMsg) } }, fail(e) { console.log("fail:" + e) } }) } }, onLoad:function(){ var result = uni.getStorageSync('cmp_user'); if (result && result.hasUserInfo ){ uni.switchTab({ url: '/pages/index/index' }) }else{ this.show = true } }, created() { uni.hideHomeButton() } }</script><style></style>
import java.util.ArrayList;import java.util.List;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.MediaType;import org.springframework.http.client.ClientHttpRequestFactory;import org.springframework.http.client.SimpleClientHttpRequestFactory;import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;import org.springframework.web.client.RestTemplate;@Configurationpublic class RestTemplateConfig { @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory){ RestTemplate restTemplate = new RestTemplate(factory); restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter()); return restTemplate; } /** * RestTemplate配置工厂, 可用于定制化RestTemplate * @return */ @Bean public ClientHttpRequestFactory simpleClientHttpRequestFactory(){ SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(15000); factory.setReadTimeout(5000); return factory; } class WxMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter { public WxMappingJackson2HttpMessageConverter(){ List<MediaType> mediaTypes = new ArrayList<>(); mediaTypes.add(MediaType.TEXT_PLAIN); setSupportedMediaTypes(mediaTypes); } }} 2. WxLoginResultDtopublic class WxLoginResultDto { private String openid; private String session_key; private String errcode; private String errmsg; // get set 省略 } 3. WxLoginControllerimport org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;import com.demo.orangodb.bean.WxLoginResultDto;@RestControllerpublic class WxLoginController { private Logger logger = LoggerFactory.getLogger(WxLoginController.class); private String wxAuthUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"; @Autowired RestTemplate restTemplate; @RequestMapping("/wxlogin") public String login(String code) { String appId = "wx39b4e0397f244xxx"; String appsecret = "xxxxxxxxx"; System.out.println(code); String url = String.format(wxAuthUrl, appId, appsecret, code); WxLoginResultDto wxLoginResult = restTemplate.getForObject(url, WxLoginResultDto.class); if(wxLoginResult.getErrcode() != null && !wxLoginResult.getErrcode().equals(0)){ logger.error("wx auth failed, errCode is [{}], errMsg is [{}]", wxLoginResult.getErrcode(), wxLoginResult.getErrmsg()); return "fail"; } System.out.println(wxLoginResult.toString()); return "ok"; }}
关键词:入口,登陆,注册,程序