转载

微信小程序登陆流程

2019-01-15  本文已影响11人  奇点一氪
image.png

1:session_key和openId是什么?session_key

官方说明为:

2.调用本地的方法将code传给后端

// 配置请求参数
        Map<String, String> param = new HashMap<>();
        param.put("appid", WX_LOGIN_APPID);
        param.put("secret", WX_LOGIN_SECRET);
        param.put("js_code", userVO.getCode());
        param.put("grant_type", WX_LOGIN_GRANT_TYPE);
        // 发送请求
        String wxResult = HttpUtils.doGet(WX_LOGIN_URL, param);
        JSONObject jsonObject = JSONObject.parseObject(wxResult);
        // 获取参数返回的
        String sessionKey = jsonObject.get("session_key").toString();
        String openId = jsonObject.get("openid").toString();
        // 根据返回的user实体类,判断用户是否是新用户,不是的话,更新最新登录时间,是的话,将用户信息存到数据库
        User user = butcherUserAgent.selectByOpenId(openId);
        if (user != null) {
            user.setLoginTime(new Date());
            butcherUserAgent.updateUser(user);
        } else {
            user.setUserName(userVO.getUserName());
            user.setPassword(userVO.getPassword());
            user.setOpenId(openId);
            user.setLoginTime(new Date());
            System.out.println("user:" + user.toString());
            User insert = butcherUserAgent.insert(user);
            if (insert == null) {
                //返回错误提示
            }
        }
        // 封装返回小程序
        Map<String, Object> map = new HashMap<>();
        map.put("session_key", sessionKey);
        map.put("openId", openId);
        return ResultUtil.createResultJson(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getCode(), map);

3:如何获得session_key和openId官方提供了HTTP接口:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
获取步骤:
(1)获得appid,secret,js_code
(2)用appid,secret,js_code分别替换如上接口地址的APPID、SECRET、JSCODE,其他不变,组装成完整的地址。

微信小程序获得session_key和openId(加解密、签名系列)


image.png

4.在“浏览器打开此地址”或者“在后台模拟浏览器的GET执行此地址”就可返回如下的JSON数据(包含openid、sessionkey)

微信小程序获得session_key和openId(加解密、签名系列)

总结:从1,2,3步骤可知,只要获得appid,secret,js_code就可得到session_key和openId


image.png

5:appid和secret的获得方式

appid为小程序ID
secret为小程序密钥(AppSecret)
获得方法:小程序后台登录网址:https://mp.weixin.qq.com/
打开小程序后台网址、注册、登录后,按如下图所示就可找到你的AppID和AppSecret。
微信小程序获得session_key和openId(加解密、签名系列)
注意:目前小程序个人不能注册,开放注册范围:企业、政府、媒体、其他组织;
当然用这个办法,个人也能注册了。
传送门:http://www.moquu.com/v/372.html

6:js_code如何获得调用wx.login()接口就可获取登录凭证(js_code)

微信小程序获得session_key和openId(加解密、签名系列)


image

7:总结整个session_key获取的流程(1)注册微信小程序、登录后台在设置中获得appId和secret(密钥)

(2)调用wx.login()接口获取登录凭证js_code
(3)调用wx.request()接口把js_code发送到服务器后台
(4)在服务器后台,已知appId、secret、js_code
然后调用如下官方提供的http接口,即可返回获取openId、session_key

上一篇下一篇

猜你喜欢

热点阅读