抖音小程序登录(前端通过tt.login获取code换取openId)

抖音小程序登录

抖音开放平台小程序登录:
https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/tutorial/basic-ability/microapp-login

前端(通过tt.login获取code)

流程
静默登录依赖小程序 API tt.login,把tt.loginsuccess 回调中返回的 code 传给开发者服务端,换取开发者服务端生成的 token。

具体的前端流程如下:

  1. 判断抖音宿主是否登录。已登录,下一步。未登录,则显示登录抖音主端的按钮,提示用户登录。
  2. 登录抖音成功后,tt.login 会返回一个 code,前端携带 code 向开发者服务端请求。
  3. 开发者服务端通过 code2session 换取 sessionKey、open_id 和 union_id,并生成与 open_id 对应的唯一 token。
  4. 开发者服务端将 token 返回前端。
  5. 前端将 token 缓存,下次直接携带 token 向开发者服务端请求数据。

后端

具体流程
从前端的code去调用抖音接口去换取openid等信息,以此生成token

  1. 先调用接口换取openid

    接口为
    https://developer.toutiao.com/api/apps/v2/jscode2session
    响应为
    {
    “err_no”: 0,
    “err_tips”: “success”,
    “log_id”: “2024102117013250E8ABC6F2D070B681DC”,
    “data”: {
    “session_key”: “hZy6t19VPjFqm********”,
    “openid”: “V3WvSshYq9******”,
    “anonymous_openid”: “”,
    “unionid”: “f7510d9ab***********”
    }
    }

  2. 我是根据openid和shopId作为用户的唯一依据的,一般来说就是根据openid就可以,如果存在这个用户就查询然后将id放到token的负载之后,没有则先注册到数据库返回id,放入token中

  3. 返回前端token


String appid = "********;
String secret = "*************************************";
public Map<String, Object> dyMiniLogin(String code, String ipAddr, Long shopsId) {
   
        String url = "https://developer.toutiao.com/api/apps/v2/jscode2session";

        // 创建请求体 JSON 对象
        com.alibaba.fastjson2.JSONObject requestBody = new com.alibaba.fastjson2.JSONObject();
        requestBody.put("anonymous_code", ""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值