在开始讲解微信登陆前先补一些知识点
Step1:常见互联网登陆方式
1.手机号或邮箱注册
优点:
1)企业获取了用户的基本资料信息,利于后续业务发展推送营销类信息
2)用户可以用个手机号或者邮箱获取对应的app福利 注册送优惠券
3)反馈信息的时候方便,直接报手机号即可账户出问题,被盗等
缺点:
1)步骤多
2)如果站点不安全,如站点被攻击,泄露个人信息,如手机号、密码等
3)少量不良企业贩卖用户信息,如手机号等
2.OAuth2.0一键授权登陆
例子:豆瓣:www.douban.com
优点:使用便捷,用户体验好,数据相对安全
缺点:
1)反馈问题麻烦,比较难知道唯一标识 openid
22)如果是企业下面有多个应用,其中有应用不支持Auth2.0登陆,则没法左到用户信息打通,不能复用等,如app接入了微信授权登陆,但是网站没有,则打不通,或者授权方只提供了一种终端授权,则信息无法打通。
3.选择方式
1)看企业和实际业务情况
2)务必区分,普通密码和核心密码
Step2:微信扫一扫功能开发前准备
微信开放平台
网站:htts://open.weixin.qq.com/
无奈微信开放平台对开发者不友好,一定要公司营业执照 + 300元认证认证,才可以认证微信开放平台接入微信登录。
如果你有自己的应用,还需要备案等,但这里我会把整体的流程讲解
有三个点要注意
appid:就是你的应用唯一id
appsecret:密钥
code:授权码
redirect_url:授权回调域(这里重点说一下,你应用那里写的是多少,你的配置中一定要一样,)
比如你在当前www.baidu.com 微信登陆,微信那边会回调你配置的地址,它会把一些code重要参数给你,如果你地址不对,那么你就接收不到参数,自然后面的操作也是无法完成的。感觉有些懵继续往下看就明白了
封装一个Http请求类,用于我们扫一扫后向微信平台发请求获取信息用的
Step1:添加依赖
<!--HttpClient-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency>
<!--gson工具,封装http的时候使用 做map类型的转换-->
<dependency>
<groupId>com.google.code.gson</groupId>
<art