admin管理员组文章数量:1614997
本机号码一键登录基本成为各个 APP 的标配了。
传统的手机验证码登录方式:
- 输入手机号;
- 前端判断手机号是否有效;
- 后台判断手机号是否有效;
- 借助第三方下发手机验证码;
- 前端有一个倒计时,防止验证码过期输入;
- 手机收到验证码;
- 复制粘贴输入验证码校验;
- 将信息发给后台接口,验证手机号和验证码是否正确,然后才是注册和登录流程,下发认证 Auth 信息。
这一套流程下来足够费劲了。而上述的「本机号码一键登录」完全无感,只要一点按钮,所有操作一步到位。
今天我们来说一说如何利用「极光」做到「本机号码一键登录」的。
开通「极光认证」
开通「极光认证」,需要先完成实名认证,实名认证后可以领取 1,000 次极光认证礼包。
认证成功后,填入 android 和 iOS 包名、签名等信息。
开通后,即可领取免费使用次数。
注:签名生成工具 apk 包下载链接:https://res.wx.qq/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk
安装极光认证插件
看过之前文章的朋友应该知道我们公司的 APP 是基于 Flutter 开发的,而且用到极光的推送插件:《推荐一款 Flutter Push 推送功能插件》https://mp.weixin.qq/s/l0_lghnp7ECRRO9YswWWSw。
这里我们还是使用极光认证提供的 Flutter 插件,根据官方提供的安装方法有 github 源代码集成和 pub 集成,这里我推荐 pub 集成方法:
dependencies:
jverify: 0.6.1
插件功能
有了插件,接下来就可以写功能了。先来看看插件都提供哪些功能,这里我们主要看 Flutter 插件源码,
具体包括:
- setup
- setDebugMode
- isInitSuccess
- checkVerifyEnable
- getToken
- verifyNumber
- loginAuth
- loginAuthSyncApi
- preLogin
- dismissLoginAuthView
- setCustomUI (注释掉了该功能)
- setCustomAuthViewAllWidgets
- clearPreLoginCache
- setCustomAuthorizationView
极光认证提供了两个方向性的功能:验证手机号和一键登录功能,今天我们主要是用到一键登录功能,整个插件使用流程大致是这样的:
主要用到的核心功能有:
- setup
- setDebugMode
- isInitSuccess
- checkVerifyEnable
- preLogin
- setCustomAuthViewAllWidgets
- loginAuth
每个功能都挺好理解的,可以过一遍代码。
/// 统一 key
final String f_result_key = "result";
/// 错误码
final String f_code_key = "code";
/// 回调的提示信息,统一返回 flutter 为 message
final String f_msg_key = "message";
/// 运营商信息
final String f_opr_key = "operator";
final Jverify jverify = new Jverify();
setup
由于我的 APP 是 Flutter 一套开发的,所以在用 setup()
时带上 appKey
和 channel
属性,Android 则在配置文件中配置。
在 /android/app/build.gradle 中添加极光上创建应用的配置信息,我之前用到极光推送了,用的同一个应用。
// 注册极光认证
jverify.setup(
appKey: "6592925ae1*****658473",//"你自己应用的 AppKey",
channel: "devloper-default");
setDebugMode
这个简单,就是是否需要 debug 模式,在开发中建议打开,你也可以创建一个全局变量,在开发中默认打开,在打包 release 模式下是关闭的,避免在 APP 开发过程和打包过程中反复去修改这个状态
jverify.setDebugMode(isDebug); // 是否打开调试模式
isInitSuccess
判断 sdk 初始换是否成功:
jverify.isInitSuccess().then((map) {
bool result = map[f_result_key];
setState(() {
if (result) {
_result = "sdk 初始换成功";
}else {
_result = "sdk 初始换失败";
}
});
checkVerifyEnable
判断当前的手机网络环境是否可以使用认证。
jverify.checkVerifyEnable().then((map) {
bool result = map[f_result_key];
setState(() {
if (result) {
_result = "当前网络环境【支持认证】!";
}else {
_result = "当前网络环境【不支持认证】!";
}
});
});
以上的几个方法基本都是在 sdk 初始化和验证是否可以满足一键登录条件。
preLogin
当环境满足一键登录后,我们就开始进行一键登录操作了&
版权声明:本文标题:本机号码一键登录!推荐 Flutter 极光认证插件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728694468a1169930.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论