Spring Security Note-10
微信登录开发
微信开发的整个流程,原理和QQ是几乎一致;
api
定义api绑定的公共接口
config
微信的一些配置信息
connect
与服务提供商建立连接所需的一些类
代码过多且雷同,详见GITHUB;
社交帐号绑定与解绑
实现绑定与解绑,需要知道社交账号的绑定状态,绑定就是重新经历OAuth2
流程,关联当前登录用户;
解绑就是删除UserConnection
表中的数据;
Spring Social
默认在ConnectController
类上已经实现了以上需求;
获取状态
/connect
获取状态
ConnectController中的方法只提供了数据并没有提供视图;
实现connect/status
视图即可获得社交账号的绑定状态;
1 | (method=RequestMethod.GET) |
实现connect/status
1 | "connect/status") ( |
绑定的实现
ConnectController中的方法 /connect/{providerId} 绑定社交帐号
1 | ////跳转到授权的页面 |
授权成功的回调地址
1 | // 将当前的登录账户与社交账号绑定(写入到UserConnection表) |
绑定结果的视图
1 | public class ImoocConnectView extends AbstractView { |
注入绑定结果的视图
1 |
|
解除绑定的实现
解除绑定的操作其实与绑定是一样的,只是发出请求的方式是DELETE,而不是POST;
1 | http://localhost/connect/weixin |
发送请求后,虽然返回的响应结果是302,但是实际上在数据库中,已经完成了记录的删除;
补充一下解绑的视图;
1 | "connect/weixinConnect","connect/weixinConnected"}) ({ |