百度登录

登入

SDK 提供了快速登录小程序的接口,省去使用 百度登录接口时获取 code, session_key 等辅助操作。

建议的登录流程是,通过 swan.BaaS.auth.loginWithBaidu() 获取用户 openID, 这时无需弹框授权,开发者拿到 openID 可以建立自身的帐号 ID。当必须要获得用户的头像昵称等信息时,才让用户点击 button(open-type="getUserInfo" ),弹框授权。

静默登录

swan.BaaS.auth.loginWithBaidu(null, { createUser })

该方法会进行简单的登录,不需要用户授权,即不会弹出授权框。但如果 app 中未登录,会弹出登录框。

参数说明

参数
类型
说明

createUser

Boolean

是否创建用户,默认为 true,可选

createUser 参数决定了一个新的 百度用户第一次登录时的服务端处理行为。 默认为 true,服务端会有该用户创建一个知晓云用户记录。 当 createUserfalse 时,服务端会终止登录过程,返回 404 错误码,开发者可根据该返回结果进行多平台账户绑定的处理。详见 多平台用户统一登录 说明

请求示例

// 百度用户登录小程序
swan.BaaS.auth.loginWithBaidu().then(user => {
  // 登录成功
}, err => {
  // 登录失败
})

登录成功返回示例 then 回调中的 user 对象为 currentUser 对象,请参考currentUser 小节

登录失败返回示例

err 对象结构请参考错误码和 HError 对象

设置用户名和邮箱

用户通过 百度登录后,可以设置邮箱、用户名、密码,以便下次可以通过用户名或者邮箱登录。

详情请参考 更新用户名更新邮箱

请求用户授权

开发者需要提供按钮的方式,令用户触发授权操作

swan.BaaS.auth.loginWithBaidu(data, {createUser, syncUserProfile})

参数说明

参数
类型
说明

data

object

bindgetuserinfo 事件回调返回的参数

createUser

Boolean

是否创建用户,默认为 true

syncUserProfile

String

是否同步第一层级用户信息,可选值为 overwritesetnxfalse,默认值为setnx

createUser 参数决定了一个新的 百度用户第一次登录时的服务端处理行为。 默认为 true,服务端会有该用户创建一个知晓云用户记录。 当 createUserfalse 时,服务端会终止登录过程,返回 404 错误码,开发者可根据该返回结果进行多平台账户绑定的处理。详见 多平台用户统一登录 说明

用户点击该按钮时,会返回获取到的用户信息,其中包括加密的敏感信息,开发者需在回调中调用 swan.BaaS.loginWithBaidu 方法,以获得解密后的全部用户信息。

请求示例

用户同意授权返回示例 then 回调中的 user 对象为 currentUser 对象,请参考currentUser 小节

用户拒绝授权示例 catch 回调中的 HError 对象示例:

其他错误 catch 回调中的 res 对象示例:

res 对象结构请参考错误码和 HError 对象

info swan.BaaS.auth.loginWithBaidu 默认会检查用户是否已登录,若未登录,该接口默认会先执行登录操作

关联百度小程序

UserRecord.linkBaidu()

请求示例

返回示例

多平台用户统一登录

假设开发者现在同时支持百度小程序和 web 端登录,需要百度小程序新用户关联到已经注册好的用户账户,才能登录成功。 可以通过 loginWithBaidu 的参数 createUser 设置为 false,此时,服务端会判断该用户是否已经有账户记录, 如果没有,则返回 404 状态码。开发者可根据此状态码,跳转到需要填写用户名密码页面,进行已有账户的关联或新的账户的创建, 完成后,调用 linkBaidu 方法完成当前百度小程序用户与账户的绑定。下一次用户再次登录时,则会直接登录成功。

示例代码

静默登录时检查

请求用户授权后检查

已废弃 关联百度小程序(SDK < 3.19.1)

关联百度小程序(旧)

UserRecord.linkBaidu(data, {syncUserProfile})

参数说明

参数
类型
说明

data

object

swan.getUserInfo() success 回调中收到的参数,可选

syncUserProfile

String

是否同步第一层级用户信息,可选值为 overwritesetnxfalse,默认值为setnx

请求示例

  1. 不获取用户信息:

  1. 获取用户信息:

返回示例

Last updated

Was this helpful?