现在我做的项目需要支持使用抖音账号登录,并且可以管理自己的抖音号,所以我需要拿到抖音用户的身份验证 access_token,这篇文章记录一下抖音授权登录的流程。
抖音开放平台提供了授权相关的接口和文档说明,大概流程是:
1.用户在我们应用选择抖音登录,前端向后端发起一个 GET 请求,包含stat参数,我给前端返回一个获取授权码的网址。
2.用户访问获取授权码的网址,用抖音扫码或者输入抖音账号密码,进行授权登录
3.用户授权成功之后,抖音会回调我配置的回调 redirect_uri,传回 code 和 stat 参数
4.后端回调函数会用 code等参数请求抖音,得到用户的access_token 和 open_id.
5.后端把用户的 open_id 和 stat参数保存到数据库中,access_token 保存到redis 中
6.后端根据用户信息生成一个用户 token,自己项目的用户认证token,用户open_id 和 token作为 key-value 保存到 redis 中。
7.前端对后端的登录接口进行轮询,传递 stat参数,如果用户表中有 stat 则返回用户的 token。
有了用户的 access_token 和 open_id 就可以操作用户自己的抖音了,包括用户信息,用户的短视频管理等。
下面是代码:
class V1PlatformCodeView(APIView):def get(self, request):"""返回请求抖音授权的页面url:param request::return:""