对比微信小程序登录流程
字节跳动小程序登录
客户端
客户端使用tt.login()
方法获取登录临时凭证code
值,code
值有效期3分钟。客户端获取code
之后需通过调用服务端接口来向小程序后端发起登录凭证校验以获取用户信息。
tt.login({force:boolean, success:function, fail:function, complete:function});
接口参数
参数 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
force | boolean | true | N | 是否强制调起登录框 |
success | function | - | N | 登录成功回调函数 |
fail | function | - | N | 登录失败回调函数 |
complete | function | - | N | 登录完成回调函数,不管成功或失败都会执行。 |
调起登录框
force:boolean = true
-
force
参数用于控制用户未登录时是否强制调起登录框,force
参数是可选项默认值为true
。 - 如果用户未在端登录,比如没有在头条App中登录时,此时则会调起端的登录窗口。
- 如果用户点击登录框中的取消按钮则会调用
fail
回调函数。
登录失败
fail:function(res){
console.log("login fail", res.errMsg);
tt.showToast({title:"登录失败", duration:2000});
}
fail
登录失败回调函数,返回一个具有errMsg
登录失败信息参数的对象。
success:function(res){
const code = res.code;
const anonymousCode = res.anonymousCode;
const isLogin = res.isLogin;
}
登录成功
success
登录成功回调函数携带一个object
对象类型的参数返回,object
对象包含属性分别是code
、anonymousCode
、isLogin
、errMsg
。
例如:
{errMsg: "login:ok", anonymousCode: "7f50f5eda4923235", code: "231be4a26fec3d23", isLogin: true}
属性 | 类型 | 描述 |
---|---|---|
errMsg | string | 错误信息 |
isLogin | boolean | 是否已登录 |
code | string | 登录临时凭证 |
anonymousCode | string | 匿名登录凭证 |
isLogin
布尔值,用于判断在当前App中用户是否已经处于登录状态。
临时登录凭证
-
code
即临时登录凭证,有效期3分钟。只有端登录成功的success
中会出现code
值,否则只会出现anonyousCode
值。 -
code
值得作用时向服务端请求后接口以获取用户信息,用户信息中openid
是用户身份的唯一标识。
匿名登录凭证
-
anonyousCode
匿名登录凭证code值用于标识当前设备,无论登录与否都会返回,有效期3分钟。 -
anonymousCode
的作用是用来向服务端请求接口以获取anonmous_openid
即设备的唯一标识,比如同一台手机的anonmous_openid
值是唯一且相同的。
临时登录凭证code
和匿名登录凭证anonymousCode
在向服务端请求时都只能使用1次
服务端
{ errcode: 40018, errmsg: 'bad code', error: 3, message: 'bad code' },