阅读(4800) (8)

百度智能小程序 授权流程说明

2020-08-13 16:26:57 更新

授权流程说明

智能小程序可以通过百度官方提供的登录能力方便地获取百度提供的用户身份标识,快速建立智能小程序内的用户体系。

概念介绍:

  • oauth 2.0(开放授权):一个开放登录授权标准。用户授权后,第三方智能小程序无需获取用户的用户名和密码就可以访问该用户的信息。
  • code:临时登录凭证。在用户完成对应用的授权后,会生成一个很短时间(十分钟)内有效的授权标识,开发者通过服务端请求,将 code 以及智能小程序的 client_id 和 appSecret 传到开放平台接口,可以获取到 session_key 
  • session_key:用户对智能小程序的授权会话的密钥。用户授权后,开发者可以通过百度开放平台获取授权会话的 session_key

使用百度授权前准备:

您需要创建一个智能小程序以获取 client_id(appKey)和 appSecret ,以上两者均从智能小程序开发者后台查看。

流程示意图

以下是智能小程序使用 oauth 2.0 进行授权及获取用户信息的示意图:

图片

流程说明:

  1. 智能小程序在 app 内部运行时使用 swan.login() 接口获取 授权标识 code;
  2.  开发者服务器 通过 授权标识 code 获取会话密钥 session_key;
  3.  调用 swan.getUserInfo 获取用户信息;
  4.  如果需要使用接口返回的用户信息加密数据,将敏感用户信息加密数据通过 swan.reques发送至开发者服务器进行解密后返回智能小程序 (为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥)。

详情参见:开发者后台校验与解密开放数据

注:当用户完成了授权,且授权会话仍处于有效期时,智能小程序不需要每次都进行前两步,而是可以直接进行第三步获取用户信息。

要判断当前用户的授权会话是否仍处于有效期,可调用 swan.checkSession() 方法进行判断,详见 下载小程序支付 demo

注意

  • 临时登录凭证 code 有效期10分钟且只能使用一次
  • 会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。