zoukankan      html  css  js  c++  java
  • WEB端第三方登陆接入

    相比QQ登陆接入,两个方式差不多,在代码方面微信更简单

    但是微信开通第三方登陆功能可是废了不少事

    需要开通微信公众平台和开放平台,在开放平台还要有开发权限

    注:截至到2020-7月份,开放平台认证是要花300块的

    由于是企业开通的,流程也真是相当不少

    在此,小小的吐槽一下

    具体流程就不说了,注意,开放平台开通后,公众平台还要绑定一下.

    建议:多打电话问问客服,仔细看接入文档

    说一下代码方面的流程:

    1 - 前端GET请求一个地址,打开的是一个二维码

    2 - 手机扫码确认登陆后,微信会带参回调一个页面

    3 - 在回调页面获取code,拿着code请求后端接口,获取openId

    4 - 通过openId获取用户,获取到就登陆,否则提示

    另外还有绑定微信的功能

    上代码:

    1 - 前端GET请求,打开的是一个二维码,扫码登陆

    const base_uri = 'https://open.weixin.qq.com/connect/qrconnect?'
    const app_id = '***'
    const redirect_uri = 'encodeUri'
    const uri = base_uri + 'appid=' + app_id + '&redirect_uri=' + redirect_uri + '&response_type=code&scope=snsapi_login&state=自定义state'
    window.location.href = uri

    2 - 回调页面获取code,带着code请求后端接口,code在url中,获取一下

    3 - 获取openId

    public String getWXOpenId(String code) {
        String accessTokenUri = String.format("https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code", wxAppId, wxAppKey, code);
        String accessTokenResponse = httpUtils.Get(accessTokenUri);
        JSONObject responseJobj = JSONObject.fromObject(accessTokenResponse);
        return responseJobj.getString("openid");
    }

    4 - 微信登陆,接口就不写了,有token就返回,为null就提示用户

    public String wxLogin(String code) {
        String openId = getWXOpenId(code);
        User user = ...根据openId获取用户;
        if (user == null) {
            return null;
        }
        return getUserToken(user);
    }

    至此,微信登陆完成,经过测试

    5 - 微信绑定

    说下流程:

    用户登陆后,在页面上有个绑定按钮,用户点击,后端可以通过token获取到用户

    走一遍微信登陆流程,获取openId,保存,openId一个用户一个

    可以通过state区分登陆和绑定

    至此,微信绑定完成

    知止而后有定;定而后能静;静而后能安;安而后能虑;虑而后能得。
  • 相关阅读:
    Spring+Springmvc+SpringJDBC+freemaker+Logback配置
    POJ1942+找规律
    HDU2955+DP+背包变形
    HDU1201+简单题
    HDU1288+枚举
    面试经验(转)
    HDU1864+dp+类似背包
    PKU1659+havelhakimi定理
    算法复杂度分析(摘)
    HDU3047+并查集
  • 原文地址:https://www.cnblogs.com/SamNicole1809/p/13564606.html
Copyright © 2011-2022 走看看