最近公司的一个需求就是使原来的Liferay系统可以在微信中使用微信账号进行第三方登录,Liferay本身的登录系统也是基于oauth2.0的,本身提供了google、facebook等基于国外的第三方登录,于是就找了找官方文档,尝试自定义访问策略:
Liferay自动登录https://dev.liferay.com/zh/develop/tutorials/-/knowledge_base/7-0/auto-login
最后采用了自定义登录Portlet + 自动登录方式实现,效果图如下:
登录流程如下:
1、点击微信登录,判断localstorage(localstorage优化使用库)是否存在该微信的openid
如果不存在,则走微信认证的流程,然后获得用户openID及用户信息:
第四步:拉取用户信息(需scope为 snsapi_userinfo)
如果存在直接走第二步2、检测openid是否存在(user表添加自定义字段用于存储openid及有用的微信个人信息)
如果不存在,则定位到注册页面,用户完善注册信息,注册好之后直接进行用户绑定
如果存在则进行第三步
3、通过该openid找到Liferay系统对应的用户信息,然后使用有用的信息进行自动登录。
关于自定义登录、自动登录、自定义字段操作,请查看http://blog.csdn.net/u012551585/article/details/62261352