搞清微信公众号授权登录的步骤步骤,我们的开发就完成了一大步

献上github 地址: https://github.com/Wechat-Group/weixin-java-tools/wiki/MP_OAuth2%E7%BD%91%E9%A1%B5%E6%8E%88%E6%9D%83

第一步:需要在微信后台配置:注意,只填写自己的域名

  

  

 

   2.配置完毕后,构建网页授权url,配置重定向地址

  3.当用户同意授权后,会回调所设置的url并把authorization code传过来

  4, 拿到这个code 获得access token,与openid

  5.拿到之后,进行微信请求就可以拿到信息了

  

  

	@Autowired
	private WxMpInMemoryConfigStorage config;
	@Autowired
	private WxMpService wxMpService;
	
	@RequestMapping("/WxOauthLogin")
	public void wxxLogin(HttpServletResponse response) throws IOException {
		
		//我们可以将config配置在xml文件中管理
	    config.setAppId("wx426aad126775582c");
	    config.setSecret("d79b69215c50cee0c848415eb34c659a");
		wxMpService.setWxMpConfigStorage(config);
		String redirectURI="http://ea40c4fc.ngrok.io/Wxredirect";
		/**
		 * 构造微信重定向地址
		 * url不用我们进行urlencode
		 * 
		 */
		String url=wxMpService.oauth2buildAuthorizationUrl(redirectURI, WxConsts.OAuth2Scope.SNSAPI_USERINFO, null);
		System.out.println("重定向地址------->"+url);
		
		response.sendRedirect(url);
	}
	
	
	
	//**在用户点击授权后会触发下面的方法,即重定向的地址,必须在微信中打开哦**//
	
	@RequestMapping("/Wxredirect")
	public void WxRedirect(String code,HttpServletResponse response) throws WxErrorException, IOException {
				
		
		System.out.println("已经重定向到我这里了---success");
		System.out.println("code--->"+code);
		/*当用户同意授权后,会回调所设置的url并把authorization code传过来
		 * ,然后用这个code获得access token,其中也包含用户的openid等信息
		 */
		WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(code);
		/*
		 * 获取用户的基本信息
		 */
		WxMpUser wxMpUser = wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
		
		System.out.print("用户的基本信息"+wxMpUser);
		
		/*
		 * 业务逻辑处理,自己看自己的业务
		 */
		
		@Cleanup
		PrintWriter writer =response.getWriter();
		
		writer.write(wxMpUser.toString());
	}

  

  

 

posted on 2018-08-26 12:57  iscys  阅读(518)  评论(0编辑  收藏  举报