登录参数、签名算法、回调字段和应用审核要求可能变化。接入前请向 Potato 获取当前 SDK 与正式技术文档。
标准授权流程
创建应用
登记应用名称、域名、回调地址和支持信息。
发起授权
生成带状态参数的授权请求并跳转到 Potato。
用户确认
向用户展示请求的信息与用途,由用户主动同意。
服务端验证
验证回调、交换凭证并建立你自己的登录会话。
数据与权限范围
只请求创建账户、识别用户或完成当前业务必需的信息。不要把登录授权解释为获取通讯录、聊天内容或其他无关数据的许可。
- 在授权前说明数据用途与保存期限
- 为可选资料提供跳过或稍后补充
- 用稳定平台标识绑定本地账户
- 提供解除绑定与删除账户入口
安全设计
- 使用精确匹配的 HTTPS 回调地址,禁止开放重定向。
- 使用随机 state 或等效机制防止跨站请求伪造。
- 授权码只在服务端交换,客户端密钥不得暴露。
- 验证签名、签发方、受众、时间与重放风险。
- 为会话设置合理期限、撤销能力和异常登录通知。
不要信任前端直接传来的用户资料。账户建立和登录成功必须以服务端完成的授权校验为依据。
异常与账户冲突
| 场景 | 建议处理 |
|---|---|
| 用户取消授权 | 返回原页面并保留已填写内容,不显示为系统错误 |
| 状态参数不匹配 | 终止登录、清理临时会话并记录安全事件 |
| 授权码过期或已使用 | 重新发起授权,不要重复交换 |
| 已存在同邮箱或手机号账户 | 要求用户验证原账户后再绑定,禁止自动合并 |
| 平台服务暂不可用 | 显示可重试提示并保留其他登录方式 |
上线检查
- 生产与测试应用、密钥和回调完全隔离
- 隐私政策说明登录数据和删除方法
- 授权取消、超时和重复回调均已测试
- 支持解除绑定和账户恢复
- 日志不包含授权码、令牌或完整个人资料
- 提供安全事件响应与密钥轮换流程