swan.login

解释: 调用接口 swan.login 获取 Authorization Code ,智能小程序可以使用swan.login()接口获取Authorization Code。 Web 态说明:**初次登录:Web 态在小程序未登录状态下登录时,会跳转到百度提供的授权登录页,登录成功后再跳回原小程序页面。该跳转过程会导致无法恢复原小程序页面的上下文,所以 swan.login 的回调(success、fail、complete)无法执行,从而开发者无法获取到 code。为了解决上述问题,开发者需要在 App 示例上额外增加一个登录态下再登录:** Web 态和端内行为一致。

方法参数

Object object

object参数说明

success 返回参数说明

示例

扫码体验

请使用百度APP扫码

图片示例

代码示例1 获取code

在开发者工具中预览效果 -

  1. // Page.jsPage({ data: { }, login() { swan.login({ success: res => { console.log('login success', res) // {code: "e4a13af4e6d8c491b701a86682a5bc76NW"} }, fail: err => { console.log('login fail', err); } }); }});// App.jsApp({ data: { }, // onLogin在百度 APP 端内小程序内永远不会执行,只有在 Web 态的小程序初次登录成功后才会执行 onLogin(e) { console.log('login success', e) // {code: "e4a13af4e6d8c491b701a86682a5bc76NW"} // 使用 code 换取 session_key 等信息 }});

代码示例2: 详细示例

在开发者工具中预览效果

详细示例请在开发者工具中查看。 -

  1. swan.login({ success: res => { swan.request({ url: 'https://xxx/xxx', // 开发者服务器地址 data: { code: res.code } }); }, fail: err => { console.log('login fail', err); }});

代码示例3: 开发者工具中左上角的登录 态与模拟器中用户的百度APP登录 态不同步,对于某些接口的登录 报错,开发者需要自行调用swan.login

在开发者工具中预览效果 组件模版为report-type=”default”,需要用此兼容逻辑,详细示例请在开发者工具中查看。

代码示例4: 联合登录

在开发者工具中预览效果 -

  1. Page({ data: { }, onLoad() { // 用户首次登录 小程序,同步百度APP登录 态 swan.login({ success: res => { console.log('login success', res); }, fail: err => { console.log('login fail', err); } }); }, onShow() { let that = this; // 用户进入小程序检测小程序在百度APP的登录 态是否有效 swan.checkSession({ success: function (res) { // 有效,获取用户信息 swan.getUserInfo({ success: res => { console.log(res) let userInfo = res.userInfo; }, fail: err => { console.log(err); swan.showToast({ title: '请先授权' }); } }); }, fail: function (err) { // 无效,同步百度APP登录 态 swan.login({ success: res => { console.log('login success', res); }, fail: err => { console.log('login fail', err); } }); } }); }});

错误码

Android

iOS