title: 匿名身份认证

本篇文档介绍在 Wilddog Auth 中如何使用临时匿名帐号来进行身份认证。

前期准备

  1. 在控制面板中创建应用。请参考 控制面板-创建应用

  2. 在 控制面板 身份认证—登录方式 中打开匿名登录方式。

实现匿名身份认证

1.安装 Wilddog Auth SDK:

  1. <script type="text/javascript" src="https://cdn.wilddog.com/sdk/js/2.5.6/wilddog-auth.js"></script>

2.创建 Wilddog Auth 实例:

  1. var config = {
  2. authDomain: "<appId>.wilddog.com",
  3. };
  4. wilddog.initializeApp(config);

3.调用 signInAnonymously()方法:

  1. wilddog.auth().signInAnonymously().then(function(user){
  2. console.log(user);
  3. }).catch(function (error) {
  4. // 错误处理
  5. console.log(error);
  6. // ...
  7. });

4.signInAnonymously()方法调用成功后,可以在当前用户对象中获取用户数据:

  1. var user = wilddog.auth().currentUser;
  2. var isAnonymous = user.anonymous;
  3. var uid = user.uid;

匿名帐号转成永久帐号

匿名登录的帐号数据将不会被保存,可以通过绑定邮箱认证或第三方认证方式将匿名帐号转成永久帐号。

绑定邮箱认证方式

绑定邮箱认证方式需要以下三个步骤:

1.以任意一种认证方式登录一个帐号。

2.获取邮箱认证方式的 credential。

  1. var credentialEmail = wilddog.auth.EmailAuthProvider.credential("12345678@wilddog.com", "password123");

3.使用邮箱认证方式绑定。

  1. var user = wilddog.auth().currentUser;
  2. user.link(credentialEmail).then(function (user) {
  3. console.log("Account linking1 success", user);
  4. }).catch(function (error) {
  5. console.log("Account linking1 error", error);
  6. });

绑定第三方认证方式

绑定第三方认证方式需要以下三个步骤:

1.以任意一种认证方式登录一个帐号。

2.获取需要绑定认证方式的 provider。

  1. // QQ 认证
  2. var provider = new wilddog.auth.QQAuthProvider();
  3. // 微博认证
  4. var provider = new wilddog.auth.WeiboProvider();
  5. // 微信认证
  6. var provider = new wilddog.auth.WeixinAuthProvider();
  7. // 微信公众帐号认证
  8. var provider = new wilddog.auth.WeixinmpAuthProvider();

3.使用第三方认证方式绑定。

例如,使用 linkWithPopup 进行绑定:

  1. wilddog.auth().currentUser.linkWithPopup(provider).then(function (result) {
  2. console.log(result);
  3. }).catch(function (error) {
  4. // 错误处理
  5. console.log(errorCode);
  6. // ...
  7. });

更多认证绑定方式,请参考 API 文档

注意:

若使用 customToken 登录时,若 customToken 中 admin 属性为 true,则不能进行关联操作。

退出登录

signOut 方法用于用户退出登录:

  1. wilddog.auth().signOut().then(function() {
  2. // 退出成功
  3. console.log("sign-out")
  4. }).catch(function(error) {
  5. // 发生错误
  6. console.log("sign-out-error")
  7. });

更多使用

  • 通过 Wilddog.auth().currentUser() 获取当前用户并管理用户。详情请参考 用户管理
  • Wilddog Auth 可以将你的应用与 Wilddog Sync 无缝集成:使用匿名登录后,Wilddog Auth 将给用户生成 Wilddog ID。Wilddog ID 结合 规则表达式,可以控制 Wilddog Sync 的用户访问权限。