查询第三方绑定,绑定,解绑功能开发
This commit is contained in:
@@ -8,10 +8,9 @@
|
||||
- `/authentication/require`处理身份认证跳转的接口地址
|
||||
- 需要注入`userServiceImpl`获取用户详细信息的bean (必须参数)
|
||||
- 需要注入数据源`masterDataSource`用于记住我功能的bean,记住我功能需要在登录的时候传入(必须参数)
|
||||
### 第三方方登录的配置
|
||||
### 第三方方登录的配置
|
||||
- 使用这个模块的时候需要借助providerSignInUtils.doPostSignUp();方法实现一个接口将用户的注册或绑定信息插入到数据表中,这里的注
|
||||
册指的是创建本系统自己的用户体系,第三方的用户体系springSocial会自动帮助我们创建。并将url
|
||||
配置可以直接访问
|
||||
册指的是创建本系统自己的用户体系,第三方的用户体系springSocial会自动帮助我们创建。并将url配置可以直接访问
|
||||
- 第三方登陆时,当用户不存在的时候,如果想要系统自动注册一个用户,不进行跳转的话。声明一个类似于demo项目中DemoConnectionSignUp
|
||||
样的组件进行自己用户体系的注册。这里的注册指的是创建本系统自己的用户体系,第三方的用户体系springSocial会自动帮助我们创建。授权后
|
||||
直接跳转到域名首页
|
||||
|
||||
@@ -34,3 +34,8 @@ weChat 第三方登录
|
||||
- `ms.security.social.weChat.appId` 类比qq登录
|
||||
- `ms.security.social.weChat.appSecret` 类比qq登录
|
||||
- `ms.security.social.weChat.providerId` 类比qq登录
|
||||
绑定,解绑第三方用户
|
||||
- 查询已绑定的用户,请求`/connect`接口即可,要求当前登录的用户放入session中的是SocialUser的对象,能获取到getId
|
||||
- 绑定用户就是发起post请求`/connect/providerId`即可.可以使用自定义名称为`qqConnectedView`或`weChatConnectedView`的bean来自定义视图
|
||||
- 解除绑定的时候,发送delete请求`/connect/providerId`删除社交登录的信息即可。返回的视图和绑定的时候使用相同的视图,在视图里面做逻辑判断
|
||||
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.micro.fast.security.core.social;
|
||||
|
||||
import org.springframework.web.servlet.view.AbstractView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 拦截请求/connect/providerId返回的/connect/providerId视图的信息,这时候是从微信的页面返回来的。所以要给前台一个页面
|
||||
* @author lsy
|
||||
*/
|
||||
public class MsConnectedView extends AbstractView{
|
||||
@Override
|
||||
protected void renderMergedOutputModel(Map<String, Object> map, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
|
||||
httpServletResponse.setContentType("text/html;charset=UTF-8");
|
||||
httpServletResponse.getWriter().write("<h3>绑定成功</h3>");
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 定义一个返回给前端第三方账户绑定的视图,拦截请求/connect,返回connect/status视图的信息,并装换成json格式
|
||||
* 定义一个返回给前端第三方账户绑定情况的视图,拦截请求/connect返回的/connect/status视图的信息,并装换成json格式
|
||||
* @author lsy
|
||||
*/
|
||||
@Component("connect/status")
|
||||
|
||||
+14
@@ -1,13 +1,17 @@
|
||||
package com.micro.fast.security.core.social.qq.config;
|
||||
|
||||
import com.micro.fast.security.core.master.SecurityProperties;
|
||||
import com.micro.fast.security.core.social.MsConnectedView;
|
||||
import com.micro.fast.security.core.social.qq.QQSocialProperties;
|
||||
import com.micro.fast.security.core.social.qq.connet.QQConnectionFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.social.SocialAutoConfigurerAdapter;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.social.connect.ConnectionFactory;
|
||||
import org.springframework.web.servlet.View;
|
||||
|
||||
/**
|
||||
* @author lsy
|
||||
@@ -24,4 +28,14 @@ public class QQAutoConfig extends SocialAutoConfigurerAdapter {
|
||||
QQSocialProperties qq = securityProperties.getSocial().getQq();
|
||||
return new QQConnectionFactory(qq.getProviderId(),qq.getAppId(),qq.getAppSecret());
|
||||
}
|
||||
|
||||
/**
|
||||
* 定义绑定成功返回的视图,和返回失败时候的视图
|
||||
*/
|
||||
@Bean({"connect/qqConnected","connect/qqConnect"})
|
||||
@ConditionalOnMissingBean(name = "qqConnectedView")
|
||||
public View qqConnectedView(){
|
||||
MsConnectedView msConnectedView = new MsConnectedView();
|
||||
return msConnectedView;
|
||||
}
|
||||
}
|
||||
|
||||
+13
-1
@@ -4,14 +4,17 @@
|
||||
package com.micro.fast.security.core.social.wechat.config;
|
||||
|
||||
import com.micro.fast.security.core.master.SecurityProperties;
|
||||
import com.micro.fast.security.core.social.MsConnectedView;
|
||||
import com.micro.fast.security.core.social.wechat.WeChatSocialProperties;
|
||||
import com.micro.fast.security.core.social.wechat.connet.WeChatConnectionFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.social.SocialAutoConfigurerAdapter;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.social.connect.ConnectionFactory;
|
||||
|
||||
import org.springframework.web.servlet.View;
|
||||
|
||||
|
||||
/**
|
||||
@@ -31,4 +34,13 @@ public class WeChatAutoConfiguration extends SocialAutoConfigurerAdapter {
|
||||
return new WeChatConnectionFactory(weChatConfig.getProviderId(), weChatConfig.getAppId(),
|
||||
weChatConfig.getAppSecret());
|
||||
}
|
||||
/**
|
||||
* 定义绑定成功返回的视图,和返回失败时候的视图
|
||||
*/
|
||||
@Bean({"connect/weChatConnected","connect/weChatConnect"})
|
||||
@ConditionalOnMissingBean(name = "weChatConnectedView")
|
||||
public View weChatConnectedView(){
|
||||
MsConnectedView msConnectedView = new MsConnectedView();
|
||||
return msConnectedView;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user