|
|
@@ -1,6 +1,7 @@
|
|
|
package com.uas.sso.weixin.controller;
|
|
|
|
|
|
import com.uas.sso.controller.BaseController;
|
|
|
+import com.uas.sso.entity.User;
|
|
|
import com.uas.sso.weixin.entity.OAuthInfo;
|
|
|
import com.uas.sso.entity.Token;
|
|
|
import com.uas.sso.service.UserService;
|
|
|
@@ -11,6 +12,9 @@ import org.springframework.ui.ModelMap;
|
|
|
import org.springframework.util.Assert;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
+import java.net.URLEncoder;
|
|
|
+
|
|
|
/**
|
|
|
* @author wangmh
|
|
|
* @create 2018-06-07 11:27
|
|
|
@@ -35,11 +39,15 @@ public class WeChatController extends BaseController {
|
|
|
private static final String WX_LOGIN_SCOPE = "snsapi_login";
|
|
|
|
|
|
@RequestMapping("/getQrUrl")
|
|
|
- public ModelMap getQrUrl(String appId) {
|
|
|
- String redirect_uri = "http://sso.ubtob.com/sso/login/wxqrLogin";
|
|
|
- String url = "https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";
|
|
|
- url = url.replace("APPID", WX_APPID).replace("REDIRECT_URI", redirect_uri).replace("SCOPE", WX_LOGIN_SCOPE).replace("STATE", "");
|
|
|
- return success(url);
|
|
|
+ public ModelMap getQrUrl(String appId, @RequestParam String url) {
|
|
|
+ try {
|
|
|
+ url = URLEncoder.encode(url, "utf8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ throw new RuntimeException("程序编码异常");
|
|
|
+ }
|
|
|
+ String qrUrl = "https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";
|
|
|
+ qrUrl = qrUrl.replace("APPID", WX_APPID).replace("REDIRECT_URI", url).replace("SCOPE", WX_LOGIN_SCOPE).replace("STATE", "");
|
|
|
+ return success(qrUrl);
|
|
|
}
|
|
|
|
|
|
@RequestMapping("/getQrParams")
|
|
|
@@ -57,13 +65,18 @@ public class WeChatController extends BaseController {
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/addAccount", method = RequestMethod.POST)
|
|
|
- public ModelMap addAccount(String t, String username, String password) {
|
|
|
+ public ModelMap addAccount(@RequestParam String t, String username, String password) {
|
|
|
Token token = tokenService.findOne(t);
|
|
|
if (token == null || token.isExpired()) {
|
|
|
return error("绑定失败,请重新扫描二维码");
|
|
|
}
|
|
|
|
|
|
- userService.bindUnionId(username, password, (String) token.getBind());
|
|
|
+ Token unionidToken = tokenService.findOne(t);
|
|
|
+ if (unionidToken != null) {
|
|
|
+ OAuthInfo oAuthInfo = (OAuthInfo) unionidToken.getBind();
|
|
|
+ User user = userService.bindUnionId(username, password, oAuthInfo.getUnionid());
|
|
|
+ request.getSession().setAttribute("userUU", user.getUserUU());
|
|
|
+ }
|
|
|
|
|
|
tokenService.delete(t);
|
|
|
|