网易云信 LoginKit 登录组件封装了云信短信能力,提供发送短信验证码、验证短信验证码以及验证结果抄送功能。通过该组件您可以将短信验证能力快速集成至自身应用中,实现短信验证登录的场景。
Demo 效果图:
如果您在用友平台下载了该组件,通过用友云信控制台注册账号并开通服务,云信将提供特别的渠道价格,验证码短信前 1000 条免费,可在开通账号后联系云信销售或技术支持。
点击 立即注册 前往云信控制台开通服务。
推荐好友使用云信产品,返佣奖励高至 20%,上不封顶!
点击 网易云信 8 周年庆 即可参与,合法致富机会,赶紧牢牢抓住!
网易云信提供多种服务,包括客服、技术支持、热线服务、全流程数据监控等,建议扫码添加我们的技术支持,协助接入、测试以及定制需求。
微信咨询 | 在线咨询 | 电话咨询 |
---|---|---|
点击在线咨询 | 4009-000-123 |
在接入前请提前获取云信应用 AppKey 和短信模版 ID。
创建云信账号。
创建应用。
创建应用是体验或使用网易云信各款产品和服务的首要前提,您可以参考创建应用文档在网易云信控制台创建一个应用,并查看该应用的 App Key。
开通短信并购买资源包。
由于短信为资源型产品,开通功能后还需要购买相应的资源包短信条数才可正常使用,否则短信将会由于无资源包而无法正常使用,具体请参考开通短信并购买资源包。
申请短信签名并创建短信模板。
您可以通过以下两种方式,将在网易云信控制台获取的 AppKey 配置到您的应用中。
方式一:在config文件中配置
名称:neteaseLoginKit
参数:appKey
配置示例:
<feature name="neteaseLoginKit">
<param name="appKey" value="appkey123456" />
</feature>
字段描述:
appKey:云信 IM 应用的唯一标识,通过云信控制台创建应用时获取。
方式二:通过API接口传入
调用 initConfig 接口配置初始化参数时,配置 appKey
, 该方式会覆盖方式一配置的值。
调用 configLoginPage 接口配置登录页面。
调用 toLoginPage 接口弹出登录页面。
调用 dismissLoginPage 接口销毁登录页面。
initConfig() -> configLoginPage() -> toLoginPage() -> dismissLoginPage()
完整逻辑需要实现 回调方法。
插件接口是指可供 js 直接调用的接口。
配置初始化参数。
initConfig({params})
appKey:
smsTemplateId:
timeCountdown:
needUp:
host:
isNeedAgree:
agreementList:
{
agreementTitle:'', // String 类型;隐私协议标题
agreementLink:'' // String 类型;隐私协议链接
}
agreementTitle:
userAgreement:
agreeButtonText:
rejectButtonText:
isShowCloseButton:
var demo = api.require('neteaseLoginKit');
demo.initConfig({
appKey:"123456",
smsTemplateId:123456,
agreementList:[
{
agreementTitle: "用户服务协议",
agreementLink: "https://yunxin.163.com/m/clauses/user"
},
{
agreementTitle: "用户隐私协议",
agreementLink: "https://yx-web-nosdn.netease.im/quickhtml/assets/yunxin/protocol/clauses.html"
}
],
agreementTitle:"用友用户协议",
userAgreement:"用友协议内容",
agreeButtonText:"确定",
rejectButtonText:"拒绝",
timeCountdown:10
});
iOS系统
可提供的1.0.0及更高版本
配置登录页面。
configLoginPage({params})
darkTextColor:
grayTextColor:
lightTextColor:
themeColor:
disableThemeColor:
errorColor:
inputDividerLineColor:
var demo = api.require('neteaseLoginKit');
demo.configLoginPage({
themeColor:"#808000",
disableThemeColor:"#D3D3D3"
});
iOS系统
可提供的1.0.0及更高版本
跳转登录页面。
toLoginPage()
var demo = api.require('neteaseLoginKit');
demo.toLoginPage();
iOS系统
可提供的1.0.0及更高版本
销毁登录页面。
dismissLoginPage()
var demo = api.require('neteaseLoginKit');
demo.dismissLoginPage();
iOS系统
可提供的1.0.0及更高版本
本地生成动态 token(同步接口)。
该接口将基于 appKey、appSecret、accid 以及时间戳自动生成动态 Token。该接口仅用于调试回调方法 tokenCompletionHandler,实际 token 计算逻辑应存放在服务端,token 计算规则具体请参考服务端动态 Token 鉴权,也可参考登录组件源码中 getLocalToken 方法的实现逻辑。
getLocalToken()
appKey:
appSecret:
mobile:
var demo = api.require('neteaseLoginKit');
var token = demo.getLocalToken({
appKey:'appkey12456',
appSecret:'appsecret123456',
mobile: '12312341234'
});
iOS系统
可提供的1.0.0及更高版本
回调方法是指需要 js 定义实现、与原生进行通信的方法。
实现原理:
原生自动监听回调事件,回调事件触发后,原生主动调用 js 同名方法,将回调参数透传给 js,js 需要自行处理该回调事件。
账号密码登录回调。
- /// 账号密码登录回调
- /// completion 回调是否登录成功,如果登录失败,需要传入失败原因
- @objc optional func didClickLogin(info: NELoginInfo?, completion: @escaping (Bool, String?) -> Void)
// info 登录信息
// - 类型:JSON 字符串
// - 内部字段:
// {
// phoneNumber:'', // String 类型;用户手机号(账号)
// password:'', // String 类型;用户密码
// token:'' // String 类型;用于服务端验证
// }
//
// return 登录结果
// - 类型:JSON
// - 描述:回调是否登录成功,如果登录成功可不传;如果登录失败,需要传入失败原因
// - 内部字段:
// {
// isSuccess:false, // String 类型;是否登录成功
// message:'密码错误' // String 类型;登录失败原因,传入后会在【登录】按钮上方显示
// }
function didClickLogin(info) {
api.alert({
msg: info
});
// 登录逻辑
return JSON.stringify({isSuccess:false, message:'密码错误'});
}
iOS系统
可提供的1.0.0及更高版本
手机号验证码验证成功回调。
loginVerifyCodeSuccess(info)
- /// 手机号验证码验证成功回调(验证码校验成功,其他逻辑需要外部处理)
- @objc optional func loginVerifyCodeSuccess(info: NELoginInfo?)
// info 登录信息
// - 类型:JSON 字符串
// - 内部字段:
// {
// phoneNumber:'', // String 类型;用户手机号(账号)
// password:'', // String 类型;用户密码
// token:'' // String 类型;用于服务端验证
// }
function loginVerifyCodeSuccess(info) {
api.alert({
msg: info
});
// 其他逻辑
}
iOS系统
可提供的1.0.0及更高版本
手机号验证码注册成功回调。
registerVerifyCodeSuccess(info)
- /// 手机号验证码注册成功回调(验证码校验成功,其他逻辑需要外部处理)
- @objc optional func registerVerifyCodeSuccess(info: NELoginInfo?, completion: @escaping (Bool) -> Void)
// info 登录信息
// - 类型:JSON 字符串
// - 内部字段:
// {
// phoneNumber:'', // String 类型;用户手机号(账号)
// password:'', // String 类型;用户密码
// token:'' // String 类型;用于服务端验证
// }
//
// return 手机号验证码注册结果
// - 类型:Bool
// - 描述:手机号验证码注册是否登录成功,返回 true 则回退到上一页
function registerVerifyCodeSuccess(info) {
api.alert({
msg: info
});
// 手机号验证码验证成功后的逻辑
return true;
}
iOS系统
可提供的1.0.0及更高版本
密码重置成功回调。
resetPasswordSuccess(info)
- /// 密码重置成功回调(验证码校验成功,其他逻辑需要外部处理)
- @objc optional func resetPasswordSuccess(info: NELoginInfo?, completion: @escaping (Bool) -> Void)
// info 登录信息
// - 类型:JSON 字符串
// - 内部字段:
// {
// phoneNumber:'', // String 类型;用户手机号(账号)
// password:'', // String 类型;用户密码
// token:'' // String 类型;用于服务端验证
// }
//
// return 密码重置成功结果
// - 类型:Bool
// - 描述:密码重置成功是否成功,如果返回 true 则回退到上一页
function resetPasswordSuccess(info) {
api.alert({
msg: info
});
// 密码重置成功后的逻辑
return true;
}
iOS系统
可提供的1.0.0及更高版本
用户回填 token 回调。
tokenCompletionHandler(mobile)
- /// 用户回填 token 数据, 每次请求的时候向外部请求使用
- /// completion 回调token值
- @objc optional func tokenCompletionHandler(mobile: String, completion: @escaping (String) -> Void)
// mobile
// - 类型:String
// - 描述:用户手机号(账号)
//
// return
// - 类型:String
// - 描述:回调 token,token 计算规则参考原生代码
function tokenCompletionHandler(mobile) {
api.alert({
msg: mobile
});
// 生成 token 逻辑(该逻辑应放在服务端,此处调用本地接口仅为了调试,不建议采取该种方式)
var demo = api.require('neteaseLoginKit');
var token = demo.getLocalToken({
appKey:'123456',
appSecret:'456789',
mobile: mobile
});
return token;
}
注意:
该接口回调获取的 token 计算规则请参考服务端动态 Token 鉴权。
若需要快速调通组件,可使用本地接口 getLocalToken 当做临时方案,但从安全的角度考虑, token 的计算逻辑应放在服务端,以免 appSecret 泄露。
iOS系统
可提供的1.0.0及更高版本