You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React Native Expo中通过Salesforce PIN Protect完成PIN用户认证

Salesforce PIN码身份认证实现方案(React Native/Expo 适配)

核心逻辑说明

Salesforce的PIN Protect功能本质是首次完整身份认证后,通过本地PIN绑定会话凭证的免密校验机制,无需单独的PIN校验REST API,全流程可以通过标准OAuth2接口配合本地逻辑实现,核心实现逻辑如下:

  • 首次认证:用户首次启动应用时,先走标准OAuth2身份校验流程(支持用户名密码、SSO等方式),成功后获取Salesforce返回的access_token、refresh_token有效凭证
  • PIN绑定:首次认证通过后,引导用户设置4-6位自定义PIN码,将PIN的加盐哈希值(禁止明文存储PIN)、refresh_token、客户端凭证加密后存入Expo安全存储模块(推荐用expo-secure-store,不要用普通AsyncStorage)
  • 后续免密校验:用户后续启动应用时仅需输入PIN码,本地校验PIN哈希匹配后,直接调用OAuth刷新令牌接口获取新的access_token,即可正常调用所有业务REST API,全程无需再次输入用户密码

相关REST API调用说明

刷新令牌接口(核心免密调用接口)

  • 接口地址:/services/oauth2/token
  • 请求方法:POST
  • 必传参数:
    参数名说明
    grant_type固定值refresh_token
    client_id你在Salesforce后台创建的Connected App的客户端ID
    client_secretConnected App的客户端密钥
    refresh_token本地加密存储的首次认证拿到的刷新令牌
  • 响应说明:校验通过后会返回新的access_token和有效期,直接用该令牌调用其他业务接口即可

React Native(Expo)适配注意事项

  • 所有敏感数据(PIN哈希、刷新令牌、客户端密钥)必须存储在安全加密存储区域,禁止明文存储在普通本地文件或缓存中
  • PIN校验逻辑全部在本地完成,不要将PIN或其哈希值传输到服务端,避免泄露风险
  • 需设置PIN错误次数阈值(建议5次),超过阈值直接清空本地所有敏感存储,强制用户重新走首次认证流程绑定PIN,防止暴力破解

内容的提问来源于stack exchange,提问作者Guessers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:18:03