极光认证——手机号一键登录

注意:个人无法使用此功能,因为个人申请使用是不会通过的

流程介绍

开发文档:https://docs.jiguang.cn/jverification/guideline/intro
在这里插入图片描述

创建使用应用流程详情见:
在这里插入图片描述
API文档https://docs.jiguang.cn/jverification/server/rest_api/rest_api_summary
在这里插入图片描述
注意:
这里发生HTTP请求调用,需要采用 HTTP 基本认证的验证方式 做法为,HTTP Header 中加 Authorization: Header 名称是 "Authorization", 值是 base64 转换过的 "appKey:masterSecret"(中间有个冒号)。这两者可以在极光开发者服务的 Web 控制台[应用设置]-[应用信息]中查看。

在这里插入图片描述
一键登录API和代码示例:
在这里插入图片描述
注意请求返回中的电话号码,需要用配置在极光的公钥对应的私钥解密
在这里插入图片描述
公钥和私钥配置地:
在这里插入图片描述

代码实现

这里使用hutool工具包发送http请求
hutool发送Http请求-HttpRequest
使用 hutool 工具包发送 HTTP 请求
依赖:

		<!--Hutool-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.16</version>
        </dependency>

yaml配置:

#极光
jiguang:
  jpush:
    #极光开发APP KEY
    app-key: ""
    #极光开发MASTER SECRET
    master-secret: ""
    #极光短信签名ID
    message-sign-id: ""
    #极光验证码短信ID
    captcha-template-id: ""

  jverify:
    #极光的公钥 (用于一键登录加密手机号码)
    public-key: ""
    #极光的私钥 (用于一键登录加密手机号码)
    private-key: ""

loginToken是前端调用极光API获取得到传递给后端的
代码示例:

/**
     * 一键登录,获取登录成功后解密过后的电话号码
     */
    private String getPhoneByJVerify(String loginToken) {

        JSONObject param = new JSONObject();
        param.put("loginToken", loginToken);

        String result = HttpRequest.post("https://api.verification.jpush.cn/v1/web/loginTokenVerify")
                .basicAuth(JPUSH_APP_KEY, JPUSH_MASTER_SECRET)
                .body(param.toString())
                .timeout(20000)
                .execute().body();

        JSONObject jsonObject = JSON.parseObject(result);

        //加密后的电话号码(RSA加密)
        String phoneToken = jsonObject.getString("phone");

        //返回解密后的电话号码(通过私钥解密)
        if (phoneToken != null) {
            RSA rsa = new RSA(JVERIFY_PRIVATE_KEY, JVERIFY_PUBLIC_KEY);
            byte[] decrypt = rsa.decrypt(phoneToken, KeyType.PrivateKey);

            return StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8);
        } else {
            return null;
        }

    }

完整代码参见:
https://gitee.com/xunan29/sms-verification-redis

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值