前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >salesforce 登录态持久化之 refresh token接口

salesforce 登录态持久化之 refresh token接口

原创
作者头像
zcx
修改于 2024-09-13 06:30:25
修改于 2024-09-13 06:30:25
3120
举报

在 Salesforce 和外部系统集成时,为了实现登录态的持久化,常常需要用到 refresh_token,这是 OAuth 2.0 授权机制中的一部分。以下是简要介绍 refresh_token 接口的功能和作用:

  1. 初次授权与获取 Refresh Token:当用户首次通过 OAuth 2.0 协议授权登录时,Salesforce 会返回一个 access_token(用于访问资源的短期令牌)和一个 refresh_token(用于刷新 access_token 的长期令牌)。
  2. Access Token 过期问题access_token 是有时效性的,通常在一段时间后会过期。为了避免用户频繁地重新登录,refresh_token 可以用于获取一个新的 access_token
  3. 使用 Refresh Token 刷新 Access Token
    • 当外部系统检测到当前的 access_token 过期后,可以向 Salesforce 发送请求,携带 refresh_token 来获取新的 access_token
    • 请求格式通常为一个 POST 请求,包含以下信息:
      • grant_type=refresh_token
      • client_id(应用的 Consumer Key)
      • client_secret(应用的 Consumer Secret)
      • refresh_token(之前获取的 Refresh Token)
  4. 持久化登录状态:通过定期使用 refresh_token 来刷新 access_token,外部系统可以保持与 Salesforce 的登录态,而无需用户再次手动登录。这大大提升了用户体验,尤其是在长时间会话或需要频繁调用 Salesforce API 的场景中。
  5. Refresh Token 的有效期refresh_token 本身通常是长期有效的,但 Salesforce 也可能根据策略对其进行失效处理(例如,用户撤销授权或应用被删除)。

通过 refresh_token,外部系统可以在 access_token 过期后继续保持与 Salesforce 的会话,确保访问权限的持久性。

代码语言:txt
AI代码解释
复制
1. refresh_token不是业务接口用到的access_token
2. 使用password认证方式的access_token不能刷新
3. authorization_code认证方式可以拿到refresh_token,可参考上一篇
4. authorization_code认证方式response默认不会返回refresh_token,需要在参数scope加上offline_access
5. refresh_token接口可以实现登录态持久化的功能,具体实现为: 当业务接口判断access_token过期时,
自动调用refresh_token接口,获取新的access_token。
6. 在调用刷新接口时旧的refresh_token第一次获取了新的refresh_token和access_token,此时如果再次用这个
旧的refresh_token,进行第二次刷新会提示失败的同时,也会导致第一次获取的新的access_token也失效。
为避免这个问题,应避免多个线程同时使用同一个refresh_token调用刷新接口,可以考虑缓存和锁。保证
refresh_token唯一、一致。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
既生瑜何生亮 access_token VS refresh_token
中国有句老话, 既生瑜何生亮, 既然有我周瑜在世, 为什么老天还要一个诸葛亮啊? 同样的, 众所周知, 在 OAuth 2.0 授权协议中, 也有两个令牌 token , 分别是 access_tok
全球技术精选
2021/11/30
6690
既生瑜何生亮 access_token VS refresh_token
Spring Cloud OAuth2 实现用户认证及单点登录
OAuth 2 有四种授权模式,分别是授权码模式(authorization code)、简化模式(implicit)、密码模式(resource owner password credentials)、客户端模式(client credentials),具体 OAuth2 是什么,可以参考这篇文章。(http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html)
古时的风筝
2019/10/24
2.1K0
Spring Cloud OAuth2 实现用户认证及单点登录
SSO单点登录使用token机制来验证用户的安全性
// "心跳包" 用来检测用户是否在线!用来做长连接! http:短连接使用token 机制来验证用户安全性 // token 值: 登录令牌! 用来判断当前用户的登录状态!
Java帮帮
2018/03/16
5K0
SSO单点登录使用token机制来验证用户的安全性
网站应用实现微信扫码登录
https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html
码客说
2024/07/06
1.9K0
JWT双令牌认证实现无感Token自动续约
JSON Web Token (JWT)是一个开放标准(RFC 7519) ,它定义了一种紧凑和自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。此信息可以进行验证和信任,因为它是经过数字签名的。JWT 可以使用机密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。
Tinywan
2024/08/21
9320
JWT双令牌认证实现无感Token自动续约
第三方微信授权登录APP接入_使用第三方应用打开是什么意思
在微信开放平台 https://open.weixin.qq.com/ 注册成为开发者,具体步骤略
全栈程序员站长
2022/09/20
1.5K0
第三方微信授权登录APP接入_使用第三方应用打开是什么意思
第三方登录:微信扫码登录(OAuth2.0
  OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
朝雨忆轻尘
2019/06/18
59.8K1
OAuth 2.0 授权认证详解
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/06/20
2K0
OAuth 2.0 授权认证详解
微信一键登录功能的实现
最近在学习微信支付和扫码登录这块功能开发,了解到现在很多网站上都会有一些第三方登录的入口,比如:QQ、微信、微博等,这些用起来很方便快捷,直接通过扫码即可完成一键登录网站,从而省去了很多注册信息的填写,也就不需要牢记繁多的用户名和密码了。也间接避免了个人信息的暴露。非常之方便!本次,在闲暇之余记录一下微信扫码登录功能的实现教程。
AI码真香
2022/09/13
5.4K0
微信一键登录功能的实现
OAuth2.0理解和用法
现在网络的资料到处都是,很容易搜索到自己想要的答案。但答案通常只能解决自己一部分的问题。如果自己想要有一套自己的解决方案,还得重新撸一遍靠谱。
Ryan-Miao
2021/04/19
1.3K0
OAuth2.0理解和用法
SpringBoot整合spring-security-oauth2完整实现例子
技术栈 : springboot + spring-security + spring-oauth2 + mybatis-plus
EalenXie
2021/02/05
7.2K0
SpringBoot整合spring-security-oauth2完整实现例子
一口气说出 OAuth2.0 的四种授权方式
上周我的自研开源项目开始破土动工了,[《开源项目迈出第一步,10 选 1?页面模板成了第一个绊脚石
程序员小富
2020/07/07
9280
一口气说出 OAuth2.0 的四种授权方式
【微信生态圈】微信体系中的access_token有哪些?
access_token是公众号/小程序的全局唯一接口调用凭据,公众号/小程序调用各接口时都需使用access_token。开发者需要进行妥善保存。 access_token的存储至少要保留512个字符空间。 access_token的有效期目前为2个小时,需定时刷新。
烟雨平生
2023/09/22
9700
【微信生态圈】微信体系中的access_token有哪些?
iOS微信第三方登录实现
移动应用微信登录是基于 OAuth2.0协议标准 构建的微信OAuth2.0授权登录系统。
用户7108768
2021/10/29
3.2K0
salesforce 外部系统调用salesforce时restful接口认证方式
本文记录,外部系统调用salesforce时两种认证方式。这两种认证方式都是salesforce提供的标准接口oauth2。
zcx
2024/09/06
4340
Salesforce 集成篇零基础学习(一)Connected App
https://trailhead.salesforce.com/content/learn/modules/connected-app-basics
Zero-Zhang
2021/05/11
3K0
Salesforce 集成篇零基础学习(一)Connected App
微信公众号网页授权登录[通俗易懂]
微信公众号网页授权登录: 前段时间做了一个微信公众号的项目,就是微信公众号的菜单点击我的个人中心,就向用户授权登录 获取用户的信息,进行业务逻辑的操作,微信公众号官方文档,这是我写的文章,里面有很多微信的官方 文档,希望对大家有用:https://blog.csdn.net/qq_41971087/article/details/82466647 在微信公众号官方文档中,看到微信页面开发,
全栈程序员站长
2022/09/05
2.5K0
微信公众号网页授权登录[通俗易懂]
JWT数据格式及实现单点登录原理
本文讲解JWT(JSON Web Token )的定义,机制,格式和在跨域多网站单点登录中的应用。
用户4283147
2022/10/27
8350
JWT数据格式及实现单点登录原理
【全栈修炼】396- OAuth2 修炼宝典
严格来说,OAuth2 不是一个标准协议,而是一个安全的授权框架。其详细描述系统中不同角色,用户,服务前端应用(如 API )以及客户端(如网站或APP)之间如何实现相互认证。
pingan8787
2019/11/05
8630
Spring Security oAuth2
oAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。Spring Security 实现了 oAuth 协议。
数媒派
2022/12/01
8400
相关推荐
既生瑜何生亮 access_token VS refresh_token
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档