Flutter插件一野狗云身份认证

使用野狗身份认证(Wilddog Auth)的Flutter插件。野狗云身份认证即Auth,用于帮助企业和开发者将野狗快速接入应用的身份认证系统,一次身份认证打通野狗所有产品。还可以用于增强已有帐户体系和简化新应用中账号系统的开发。

开发者使用Auth能让新应用避开从0开始的帐户系统开发,轻松搞定用户注册登录、用户信息存储。同时野狗采用行业标准的JWT格式对传输数据进行加密,有效提高帐号系统的安全性,防止用户信息泄漏。

注意:此插件还不是很完善,有些功能仍在开发中,如果你发现任何问题,请加入QQ群:271733776【Flutter程序员】,期待你的反馈。

安装与配置

打开野狗云官网,注册一个野狗云帐号,已有账号的直接登陆。

创建一个新Wilddog项目

在Flutter项目上配置Wilddog Sync的第一步是创建一个新的Wilddog项目,在浏览器中打开Wilddog控制台,选择“创建应用”,输入项目名称,然后单击“创建”。

Wilddog生成了一个App ID的字符串,这是Wilddog项目唯一ID,用于连接到刚创建的Wilddog服务。复制这个ID字符串值,下面在Android、iOS平台上配置Wilddog时需要用到这个值。

注意,新项目需要开启身份认证服务才能正常使用,不然会报无权限异常。

将插件添加到应用程序

将以下内容添加到的Flutter项目的pubspec.yaml文件中。

dependencies:wilddog_auth: "^0.0.3"

更新并保存此文件后,点击顶部的“Packages Get”,等待下载完成。打开main.dart文件,IntelliJ IDEA或其他编辑器可能会在上方显示一个提示,提醒我们重新加载pubspec.yaml文件,点击“Get dependencies”以检索其他软件包,并在Flutter项目中使用它们。

开发iOS必须使用macOS,而在macOS中,想要在Flutter应用程序中使用Flutter插件,需要安装homebrew,并打开终端运行以下命令来安装CocoaPods。

brew install cocoapods
pod setup

为Android配置Wilddog

启动Android Studio后选择项目的android文件夹,打开Flutter项目的Android部分,然后再打开“android/app/src/main/java/<项目名>”文件夹中的MainActivity.java文件,将Wilddog的初始化代码添加到文件中。

//...
import com.wilddog.wilddogcore.WilddogOptions;
import com.wilddog.wilddogcore.WilddogApp;public class MainActivity extends FlutterActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {//...super.onCreate(savedInstanceState);WilddogOptions options = new WilddogOptions.Builder().setSyncUrl("https://<前面复制的AppID>.wilddogio.com/").build();WilddogApp.initializeApp(this, options);GeneratedPluginRegistrant.registerWith(this);}
}

注意,如果应用程序编译时出现文件重复导致的编译错误时,可以选择在android/app/build.gradle中添加“packagingOptions”。

android {...packagingOptions {exclude 'META-INF/LICENSE'exclude 'META-INF/NOTICE'}
}

如果出现tools:replace=”android:label”的异常,在AndroidManifest.xml中添加下面的两行代码即可解决。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"+[xmlns:tools="http://schemas.android.com/tools"]package="com.hekaiyou.wilddogauthexample"><uses-permission android:name="android.permission.INTERNET"/><application
        +[tools:replace="android:label"]android:name="io.flutter.app.FlutterApplication"

完成配置后,建议先在IntelliJ IDEA中执行一次项目,编译Android应用程序,以确保Flutter项目下载所有依赖文件。

为iOS配置Wilddog

在Flutter项目的ios目录下,使用Xcode打开“Runner.xcworkspace”文件。然后打开“ios/Runner”文件夹中的AppDelegate.m文件,将Wilddog的初始化代码添加到文件中。

//...
#import "Wilddog.h"
//...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {//...WDGOptions *option = [[WDGOptions alloc] initWithSyncURL:@"https://<前面复制的AppID>.wilddogio.com/"];[WDGApp configureWithOptions:option];//...
}

完成配置后,建议先在IntelliJ IDEA中执行一次项目,编译iOS应用程序,以确保Flutter项目下载所有依赖文件。

使用与入门

要使用Flutter的平台插件,必须在Dart代码中导入对应包,使用以下代码导入wilddog_auth包。

import 'package:wilddog_auth/wilddog_auth.dart';

同时,要为应用程序提供默认的WilddogAuth类实例。

final WilddogAuth _auth = WilddogAuth.instance;

用户管理

用户生命周期包含以下三种状态:用户注册或登录成功、当前的Wilddog ID Token已刷新(重新进行身份认证)、退出登录。

获取当前登录用户

Wilddog Auth中用户有一组基本属性:WilddogID、邮箱地址、名称、照片地址,获取当前登录用户是管理用户的基础。

final WilddogUser user = await _auth.currentUser();

获取用户属性

通过返回的WilddogUser实例可以用于获取用户以下属性:

  • providerId:身份认证提供方ID(QQ、微信)
  • uid:Wilddog ID(用户唯一的标识)
  • displayName:用户名称
  • photoUrl:用户头像Url
  • email:电子邮箱地址
  • phone:手机号码
  • isAnonymous:是否匿名用户
  • isEmailVerified:电子邮箱是否已验证
  • isPhoneVerified:手机号码是否已验证

更新用户属性

更新当前用户的昵称信息和头像URL。

await _auth.updateProfile(displayName: 'hekaiyou',photoURL: 'https://example.com/hekaiyou/profile.jpg'
);

更新用户认证密码

如果当前用户使用邮箱或手机号认证登录,可以更新用户的密码信息。需要注意的是,要更新密码,该用户必须最近登录过(重新进行身份认证)。

await _auth.updatePassword('654321');

退出登录

登出当前用户,清除登录数据。

await _auth.signOut();

删除用户

从Wilddog Auth系统中删除当前用户,也可以在控制面板”身份认证—用户”中手动删除。

await _auth.delete();

匿名登录

实现匿名身份认证需要在控制面板“身份认证—登录方式”中打开匿名登录方式。

匿名身份认证

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

final WilddogUser user = await _auth.signInAnonymously();

绑定邮箱认证方式

可以将当前用户与给定的邮箱认证方式绑定,之后支持绑定的邮箱认证方式登录。(必须是未被使用的邮箱)

final WilddogUser user = await _auth.linkWithEmailAndPassword(email: 'hky2014@yeah.net',password: '123456',
);

邮箱登录

实现邮箱登录需要在控制面板“身份认证—登录方式”中打开邮箱登录方式。

创建用户

用邮箱地址和密码创建一个新用户,新用户创建成功后会自动登录。

final WilddogUser user = await _auth.createUserWithEmailAndPassword(email: 'hky2014@yeah.net',password: '123456',
);

登录用户

使用电子邮箱和密码登录。

final WilddogUser user = await _auth.signInWithEmailAndPassword(email: 'hky2014@yeah.net',password: '123456',
);

更新邮箱地址

更新帐号邮箱,如果更新成功,本地缓存也会刷新。如果这个邮箱已经创建过用户,则会更新失败。需要注意的是,要更新用户的邮箱地址,该用户必须最近登录过(重新进行身份认证)。

更新邮箱地址会向旧邮箱发送提醒邮件,在控制面板“身份认证—登录方式—邮箱登录—配置”中定制更新邮箱邮件模版。

await _auth.updateEmail('hky2014@yeah.net');

发送邮箱验证邮件

在控制面板“身份认证—登录方式—邮箱登录—配置”中定制邮箱验证邮件模版。

await _auth.sendEmailVerification();

发送重置密码邮件

在控制面板“身份认证—登录方式—邮箱登录—配置”中定制重置密码邮件模版。

await _auth.sendPasswordResetEmail('hky2014@yeah.net');

重新认证邮箱帐户

用户长时间未登录的情况下进行下列安全敏感操作会失败:删除帐户、设置主邮箱地址、更改密码,此时需要重新对用户进行身份认证。

await _auth.reauthenticateEmail(email: 'hky2014@yeah.net',password: '123456',
);

手机登录

现邮箱登录需要在控制面板“身份认证—登录方式”中打开手机号登录方式。

创建用户

用手机号和密码创建一个新用户,新用户创建成功后会自动登录。

final WilddogUser user = await _auth.createUserWithPhoneAndPassword(phone: '13800000000',password: '123456',
);

登录用户

使用手机号和密码登录。

final WilddogUser user = await _auth.signInWithPhoneAndPassword(phone: '13800000000',password: '123456',
);

发送验证号码短信

发送验证手机的验证码,在控制面板“身份认证—登录方式—手机登录—配置”中定制验证号码短信模版。

await _auth.sendPhoneVerification();

确认手机验证码

发送验证用户的手机验证码后,通过此方法确认手机验证码是否正确。

await _auth.verifyPhoneSmsCode('208345');

发送重置密码短信

发送重置密码的手机验证码,在控制面板“身份认证—登录方式—手机登录—配置”中定制重置密码短信模版。

await _auth.sendPhoneVerification();

确认重置验证码

发送重置密码的手机验证码后,通过此方法确认重置验证码是否正确。通过手机号码,验证码来修改密码。之后可以使用新密码进行手机号认证方式登录。

await _auth.confirmPasswordResetSms(phone: '13800000000',realSms: '685773',newPassword: '654321',
);

更新手机号码

更换用户手机号,如果成功,本地缓存也会被刷新。需要注意的是,要更新用户的邮箱地址,该用户必须最近登录过(重新进行身份认证)。

await _auth.updatePhone('13800000000');

重新认证手机帐户

用户长时间未登录的情况下进行下列安全敏感操作会失败:删除帐户、设置主邮箱地址、更改密码,此时需要重新对用户进行身份认证。

await _auth.reauthenticatePhone(phone: '13800000000',password: '123456',
);

加入我们

如果你也想使用Flutter开发一个开源项目,欢迎加入Flutter开荒团,让我们一起开发Flutter的荒漠!(将你的GitHub账户名发到评论区或私信我,或者加入QQ群271733776联系我们,我会发送邀请邮件给你)

Flutter插件一野狗云身份认证相关推荐

  1. Flutter插件一野狗云实时通信

    Flutter插件一野狗云实时通信 使用野狗实时通信引擎(Wilddog Sync)的Flutter插件.野狗实时通信引擎即Sync,可以帮助开发者解决应用的实时通信问题,开发者通过API,即可为应用 ...

  2. 多因素身份认证 (MFA) 插件:手机验证码认证因素配置流程

    功能介绍 对用户表扩展手机号码字段,允许用户通过手机号码与验证码的方式进行认证,注册,重置密码以及更换手机号. 多因素身份认证 (MFA) 是保护企业 IT 资源访问安全的一种关键工具,也是零信任安全 ...

  3. flutter 刷脸_GitHub - hqwlkj/wechat_face_payment: 微信刷脸支付、刷脸认证、扫码支持等 Flutter 插件....

    wechat_face_payment 微信刷脸支付.刷脸认证.扫码支持等 Flutter 插件. 说明 该插件目前官方只提供了 Android SDK 和 Windows SDK 的文档,为提供IO ...

  4. 阿里云重磅推出物联网设备身份认证Link ID²

    2019独角兽企业重金招聘Python工程师标准>>>    2018年12月19日,阿里云宣布推出新版物联网设备身份认证Link ID²及物联网安全运营中心Link SOC,护航万 ...

  5. 阿里云ID2物联网设备身份认证系统

    物联网就是设备上云,也就是IoT,其中阿里云有个安全方案,叫ID2,大体架构如下: 1.身份认证:为每个IoT设备提供唯一的身份标识,基于ID²提供双向身份认证服务,防止设备被篡改或仿冒 2.安全连接 ...

  6. 手撸一个Flutter插件实现跨苹果全家桶云同步持久化Key Value数据

    前言 作为一个客户端开发者,后端开发一直是我的弱项.虽然GPT的横空出世,让我对后端的开发有一点眉目.但是现实是,能不触碰就不触碰,因为人的精力是有限,如何在有限的时间里发挥最大的作用一直是我的一个追 ...

  7. Udesk 即时通讯网页插件客户身份认证(二、插件传入篇)

    作者:张振琦 上篇我们实现了服务端的签名算法,我接下来看WebIM插件里如何传入客户信息.调用的接口如下: // SHA1示例 ud({"customer": {"non ...

  8. 结合 Authing 实现 AWS 云上的身份认证与授权

    身份认证与 Cognito 服务介绍 在 Web 或 App 开发过程中,用户的认证和权限处理是非常重要的一个模块,这里包括用户注册.登录认证及管理对应的权限.除了用户名密码登录外,通过第三方社交帐号 ...

  9. 身份云为什么? 浅谈身份认证与FIDO

    1.大风起兮云飞扬 1993年,美国著名杂志<纽约客>的漫画家施泰纳创作了这样一幅荒诞却广为流传的漫画,真切地体现了互联网世界的公开性与匿名性. "在互联网上,没有人知道你是条狗 ...

最新文章

  1. 【自考】信息系统开发与管理(二)——章节详读
  2. CEF:给客户端内嵌一个Chrome吧
  3. Python中列表的del,remove和pop函数之间的区别
  4. Qt工作笔记-QML自定义圆形进度条(C++后端处理数据)
  5. transactionManager 以及datasource type解析
  6. string字符串内容倒叙_面试官:string、stringbuffer和stringbuilder都不会,我招你干什么?...
  7. 了解 node.js
  8. 2018蓝桥C++B:煤球数目;生日蜡烛(枚举年龄和枚举次数)
  9. 管家婆 mysql_管家婆软件恢复账套数据图解-通过数据库源文件
  10. vba实现简单的数据排序和颜色统计
  11. echarts中环形图加边框
  12. 达人评测 Redmi G 2021锐龙版怎么样
  13. windows11中如何显示此电脑图标
  14. CAD图纸转为PDF格式打开或打印格式改变怎么办?
  15. 05、postman批量测试
  16. 《鱿鱼游戏》播完,椪糖生意火了
  17. 【素描基础】大师素描及素描抽象明…
  18. ASP.NET常见命名空间及其功能描述
  19. 高仿马蜂窝旅游头像泡泡动画
  20. 转:CPU与内存的那些事

热门文章

  1. vue、H5、移动端 读取NFC
  2. 如何在Mac或iPhone上设置 iCloud 钥匙串?
  3. 录音软件有哪些?这些软件值得收藏
  4. (翻译)布局和矩形中的应用黄金分割比率
  5. 23个极具创意的顶级侧边栏设计
  6. 前端 + 后端 实现分片上传(断点续传/极速秒传)
  7. css透明饱和度,css中filter:alpha透明度使用
  8. win10电脑360调用不到JAVA,win10系统使用360安全卫士解决浏览器打不开的具体方法...
  9. Code Runner:vscode一键运行插件
  10. Harbor传奇(4)- 新世(完结篇)