首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用django_oauth_toolkit从refresh_token获取新的access_token?

使用django_oauth_toolkit从refresh_token获取新的access_token的步骤如下:

  1. 首先,确保你已经在Django项目中安装了django_oauth_toolkit库。可以通过在终端中运行以下命令来安装它:
  2. 首先,确保你已经在Django项目中安装了django_oauth_toolkit库。可以通过在终端中运行以下命令来安装它:
  3. 在Django项目的settings.py文件中,添加oauth2_providerrest_frameworkINSTALLED_APPS列表中:
  4. 在Django项目的settings.py文件中,添加oauth2_providerrest_frameworkINSTALLED_APPS列表中:
  5. 在项目的urls.py文件中,添加以下URL配置:
  6. 在项目的urls.py文件中,添加以下URL配置:
  7. 创建一个Django视图来处理获取新的access_token请求。可以在你的views.py文件中添加以下代码:
  8. 创建一个Django视图来处理获取新的access_token请求。可以在你的views.py文件中添加以下代码:
  9. 在你的项目的urls.py文件中,将上述视图映射到一个URL路径:
  10. 在你的项目的urls.py文件中,将上述视图映射到一个URL路径:
  11. 现在,你可以通过向/o/token/URL发送POST请求来获取refresh_token和access_token。请求的body应包含以下参数:
    • grant_type: 必须为"refresh_token"
    • refresh_token: 之前获得的refresh_token
    • client_id: 客户端ID
    • client_secret: 客户端密钥
    • 以下是一个示例请求:
    • 以下是一个示例请求:
    • 响应将包含新的access_token和refresh_token。

以上是使用django_oauth_toolkit从refresh_token获取新的access_token的基本步骤。请注意,具体实现可能因你的项目配置和需求而有所不同。关于django_oauth_toolkit的更多信息和详细配置,请参考腾讯云的相关文档和官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何挂起Promise请求,refresh_token后再用access_token重新发起请求?

接手老项目,需要写一个access_token刷新逻辑,具体流程我就不赘述了,网上关于JWT刷新流程文章有很多。...我遇到主要问题是,项目没有使用axios,原生fetch没有拦截器,对于多次同时刷新token请求是应该做拦截处理,待第一个刷新请求回调后再发起后续被拦截请求,业务场景和这篇文章类似,难点在于如何挂起请求...里 const storeToken = function (data) { const { access_token, refresh_token } = data; const...res.data); isRefreshing = false; const newAccesssToken = res.data.access_token; // 用...accessToken) { // 重点 const externalControl = { resolved: null, }; // 这里返回了一个

1.2K10

既生瑜何生亮 access_token VS refresh_token

我们先看下面两者介绍 access_token 访问令牌, 它是一个用来访问受保护资源凭证 refresh_token 刷新令牌, 它是一个用来获取access token凭证 下面是 OAuth...有效期1天 access_token 是授权服务器一定颁发, 而 refresh_token 却是可选 access_token 过期后, 可以使用 refresh_token 重新获取, 而 refresh_token...refresh_token, 当 access_token 过期后(或者快要过期时候), 使用 refresh_token 获取一个 access_token, 直到 refresh_token...使用 refresh_token 获取 access_token 时, 同时会返回一个 refresh_token, 之前 refresh_token 就会失效, 但是两个 refresh_token...绝对过期时间是一样, 所以不会存在 refresh_token 快过期就获取一个, 然后重复,永不过期情况。

49620

针对分布式或集群session同步问题,改用jwt续期解决方案

token超时,客户端 携带refresh_token调用中间件接口获取access_token; 3.中间件接受刷新token请求后,检查refresh_token是否过期。...如过期,拒绝刷新,客户端收到该状态后,跳转到登录页; 如未过期,生成access_tokenrefresh_token并返回给客户端(如有可能,让旧refresh_token失效),客户端携带...)则调用成功;如果token超时,中间件删除access_token(废除);客户端再次携带refresh_token调用中间件接口获取access_token; 3.中间件接受刷新token请求后...)则调用成功;如果 token超时,中间件删除access_token(废除);客户端再次携带refresh_token调用中间件接口获取 access_token; 3.中间件接受刷新token请求后...当再次访问时,jwt中解析出用户名去redis中查找,如果存在则表示此jwt已登出失效。这里需要注意是,如果用此方法,则验证jwt是否登出应该放在第一位。

1.9K30

访问令牌过期后,如何自动续期?

超时,客户端携带 refresh_token 调用token刷新接口获取 access_token; 后端接受刷新token请求后,检查 refresh_token 是否过期。...如果过期,拒绝刷新,客户端收到该状态后,跳转到登录页;如果未过期,生成 access_token 返回给客户端。 客户端携带 access_token 重新调用上面的资源接口。...code超时时间为10分钟,一个code只能成功换取一次access_token即失效。 第三方应用通过code获取网页授权凭证access_token和刷新凭证 refresh_token。...access_token是调用授权关系接口调用凭证,由于access_token有效期(2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新。...视频地址 如何使用 JWT 认证插件:https://www.bilibili.com/video/BV1HS4y1F7Jx 如何使用 JWT 认证插件(算法篇):https://www.bilibili.com

2.3K10

iOS微信第三方登录实现

有效期: access_token是调用授权关系接口调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token...若access_token已超时,那么进行refresh_token获取一个access_token超时时间; 2....code获取access_token(要用到申请时得到AppID和AppSecret) https://api.weixin.qq.com/sns/oauth2/access_token?...access_token时出错 = %@", error); }]; } } 9、通过code获取access_token 通过上一步获取code后,请求以下链接获取access_token...事例 { "errcode":40003,"errmsg":"invalid openid" } 11、最后 做到上面一步就应该得到返回微信基本信息,然后根据你公司后台基本需求去实现授权后如何登录

2.2K40

工具系列 | 前后端分离为何选择 jwt?

refresh_token 用户通过登陆后获得 access_token,而 access_token生命周期十 分短暂,但是用户登陆太频繁会严重影响体验,因此需要一种免登陆便能获取 access_token...refresh_token 主要用来解决该问题,refresh_token 生命周 期较长,一般为 30 天左右,但 refresh_token 不能被用来用户身份鉴权和获取资源, 它只能被用来重新获取...项目中使用 用户通过用户名和密码获取 access_tokenrefresh_token 接口路由地址 http://{{iot_domain}}/api/v1/user/login HTTP请求方式...,Authorization 字段值为 Bearer加上 access_token,当通过 refresh_token 获取 access_token 时,应将 Authorization 中 access_token..._mzQJAGjyeq4bYh8 服务器会解析该字段,如 refresh_token 字段未过期则会发送 access_token

1.2K30

认证鉴权与API权限控制在微服务架构中设计与实现:授权码模式

登录成功,授权客户端获取授权码。 ? 授权之后,回调地址中获取到授权码: 1http://localhost:8080/?code=7OglOJ 携带授权码获取对应token: ? ?...为null时,才重新创建一个refresh_token 26 // 这样可以使持有过期access_token客户端可以根据以前拿到refresh_token拿到重新创建access_token...创建access_token 38 OAuth2AccessToken accessToken = createAccessToken(authentication, refreshToken...); 46 } 47 return accessToken; 48} 需要注意到,在创建token过程中,会根据该授权用户去查询是否存在未过期access_token,有就直接返回,没有的话才会重新创建...access_token,同时也应该注意到是先创建refresh_token,再去创建access_token,这是为了防止持有过期access_token能够通过refresh_token重新获得access_token

1.4K130

第三方微信授权登录APP接入_使用第三方应用打开是什么意思

服务端收到登录请求,向微信开放平台请求获取access_token,微信开放平台返回Json字符串: 第二步:通过code获取access_token(在自己服务器端做) 获取第一步code后,请求以下链接获取...、refresh_token和已授权scope /sns/oauth2/refresh_token 刷新或续期access_token使用 /sns/auth 检查access_token有效性 snsapi_userinfo...)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种: 1.若access_token已超时,那么进行refresh_token获取一个...access_token超时时间; 2.若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token...refresh_token" } 3.服务端获取access_token等信息,并返回给客户端,客户端成功登录或者重新获取授权。

1.2K20

token 过期后,如何自动续期?

双token方案 登录成功以后,后端返回 access_token 和 refresh_token,客户端缓存此两种token; 使用 access_token 请求接口资源,成功则调用成功;如果token...超时,客户端携带 refresh_token 调用token刷新接口获取 access_token; 后端接受刷新token请求后,检查 refresh_token 是否过期。...如果过期,拒绝刷新,客户端收到该状态后,跳转到登录页;如果未过期,生成 access_token 返回给客户端。 客户端携带 access_token 重新调用上面的资源接口。...code超时时间为10分钟,一个code只能成功换取一次access_token即失效。 第三方应用通过code获取网页授权凭证access_token和刷新凭证 refresh_token。...access_token是调用授权关系接口调用凭证,由于access_token有效期(2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新。

5.5K31

Flask 博客接入第三方登录

在上一篇文章中我留了一部分内容,就是如何给评论登录接入第三方登录。我不希望来访问我博客用户有太大登录成本,否则本想留下些话的人,就会被挡在这个门槛之外。...很简单,获取用户邮箱地址(用于通知)、用户头像、用户名称(用于展示)这些基本信息。登录时,我们到对应平台上获取令牌,然后通过此令牌去请求用户信息,存到我们数据库里,以备后面使用。...访问这个URI时会带上code信息,一般地,这个URI视图函数中应该做三件事情: 使用传入code去Google交换访问令牌 存储访问令牌 使用访问令牌获取用户信息 完成了以后你就可以看到你客户端...进一步简化 大家可以发现这样使用我们必须知道Google认证地址、令牌地址和一些额外请求参数,虽然我们可以查阅[Google OAuth文档]获取这些信息,但这多少也是一种负担。...invite_code=23bvqemu5etcw 比如Flask-Script这个扩展,我不推荐任何Flask项目使用,因为Flask0.11.0开始已经内置了命令行支持。↩

1.9K40

Authlib 单点登录库初体验及踩坑

起因 项目突然要接入TX云,理所应当使用tx单点登录了。于是乎,经过各方推荐,使用了大名鼎鼎Authlib库。 初体验 经过各方文档,整理了一下,在Flask中使用Authlib相当简单。...如果是接入有名OAuth2站点如Github、Google这种,直接使用官方已经封装好类即可快速实现,但此处使用是TX方为工业互联网平台搭建OAuth2服务,理所应当不能直接使用。...但仍可以使用较为便捷封装进Flask中认证方法,具体步骤如下: 新建存储Token表 根据存储access_token校验后续接口用户登录情况。...其中refresh_tokenaccess_token过期后,下次去OAuth2服务器请求新Token字段。如果在注册Authlib对象时写了update方法,即可自动更新token。...经过进入Authlib源码中深入调查,发现在fetch_token()这一步中,用OAuth服务器返回code、states等参数向获取token接口发请求时直接报404了。

1.6K20

token 过期后,如何自动续期?

双token方案 登录成功以后,后端返回 access_tokenrefresh_token,客户端缓存此两种token; 使用 access_token 请求接口资源,成功则调用成功;如果token...超时,客户端携带 refresh_token 调用token刷新接口获取 access_token; 后端接受刷新token请求后,检查 refresh_token 是否过期。...如果过期,拒绝刷新,客户端收到该状态后,跳转到登录页;如果未过期,生成 access_token 返回给客户端。 客户端携带 access_token 重新调用上面的资源接口。...code超时时间为10分钟,一个code只能成功换取一次access_token即失效。 第三方应用通过code获取网页授权凭证access_token和刷新凭证 refresh_token。...access_token是调用授权关系接口调用凭证,由于access_token有效期(2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新。

4.2K20

Spring OAuth2 实现始终获取令牌

推荐阅读 SpringBoot2.x 教程汇总 默认令牌生成方式 每当我们获取请求令牌(access_token)时,默认情况返回第一次生成令牌,使用同一个用户多次获取令牌时,只有过期时间在缩短,其它内容不变...阅读源码中可以发现无论我们配置使用什么方式来进行存储令牌,同一个账户有效令牌只会存在一个,结合上面的场景来思考所以第二个人获取令牌与第一个人是同一个。...grant_type=refresh_token)重新获取一次(有效期为2个小时)请求令牌,当刷新令牌(refresh_token)失效后,再次通过createAccessToken方法来获取令牌。...true,表示默认情况下刷新令牌(refresh_token)是可以重复使用,一般刷新令牌过期时间都比较久,当请求令牌(access_token)失效后根据刷新令牌进行获取有效请求令牌。...", "expires_in": 7199, "scope": "read" } 可以看到上面使用同一个账号获取了两次令牌,而这两次令牌内容是完全不同,这也就是实现了针对同一个账号不同人登录时返回令牌需求

2K20

axios中实现无感刷新token

现状 项目采用前后端分离开发,前后端使用access_token(即token)进行交互认证,但access_token有一个有效期,在access_token过期后,请求接口将无法成功,现在处理方式是直接退出跳转至登录入口要求重新登录...,但这种方式体验非常不友好,如果当前用户正在录入大量数据时token已经失效,提交数据时直接就退出了,产品及交互上这种方式是不允许。...access_token过期后可以使用refresh_token交换新access_token。一个refresh_token只能使用一次。...交换token接口 :使用refresh_token交换access_token,得到access_tokenexpires_in、refresh_token。...2、后端接口在检查到access_token过期后,返回状态码40001(前后端约定值),那么在response中进行拦截,当返回状态码为40001时,调用交换token接口,得到access_token

2.4K20

微信网页授权

code说明 : code作为换取access_token票据,每次用户授权带上code将不一样,code只能使用一次,5分钟未被使用自动过期。...后续刷新access_token、通过access_token获取用户信息等步骤,也必须服务器发起。...请求方法 获取第二步refresh_token后,请求以下链接获取access_token: https://api.weixin.qq.com/sns/oauth2/refresh_token?...是 填写为refresh_token refresh_token 是 填写通过access_token获取refresh_token参数 返回说明 正确时返回JSON数据包如下: { "access_token...接口调用凭证超时时间,单位(秒) refresh_token 用户刷新access_token openid 用户唯一标识 scope 用户授权作用域,使用逗号(,)分隔 错误时微信会返回JSON数据包如下

3.8K40

持续发布 Chrome 插件

后来由于我自己没有自己域名,所以不太好使用这个插件了。后面,有其他同学来提交 PR 来维护这一个插件。这样就有一个问题,一旦代码发布,就需要自己再重新发布一下插件。...那么下面具体介绍如何使用 CircleCI 来进行 Chrome 插件发布,主要包括 Google API 配置以及 CirecleCI 配置。...你可以按照以下命令来获取 refresh token,你需要使用 curl 以及 jq 这两个工具。和上面一样,记得替换下面命令中相对应变量。因为需要访问谷歌,你需要确保你终端可以访问谷歌。...现在我们已经拿到了我们所有需要信息,下面就是如何使用 CirecleCI 来进行配置来完成发布任务了。 ?...幸好我们可以利用 refresh token 来获取 access token。通过这个 access token 我们可以上传压缩文件并且发布插件。

76620
领券