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

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

流程介绍

开发文档: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
    评论
为了在uniapp中接入极光一键登录,需要进行以下步骤: 1.在极光官网注册并创建应用,获取AppKey和AppSecret。 2.在uniapp项目中安装jpush插件,可以使用以下命令进行安装: ```shell npm install jpush-uniapp --save ``` 3.在App.vue文件中引入jpush插件并初始化: ```javascript import JPush from 'jpush-uniapp' export default { onLaunch: function() { JPush.init() } } ``` 4.在需要使用一键登录的页面中,调用jpush插件的login方法: ```javascript import JPush from 'jpush-uniapp' JPush.login({ appKey: 'yourAppKey', authPageConfig: { authLoginPage: 'yourAuthLoginPage', authLogo: 'yourAuthLogo', authNavHidden: true, authStatusBarHidden: true, authCustom: { privacyOne: ['yourPrivacyUrl1', 'yourPrivacyTitle1'], privacyTwo: ['yourPrivacyUrl2', 'yourPrivacyTitle2'] } } }, (res) => { console.log(res) }) ``` 其中,appKey为在极光官网创建应用时获取的AppKey,authPageConfig为一键登录页面的配置信息,包括登录页、logo、隐私协议等。 5.在Android平台上,需要在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ``` 6.在iOS平台上,需要在Info.plist文件中添加以下权限: ```xml <key>NSPhotoLibraryUsageDescription</key> <string>需要您的同意,才能访问相册</string> <key>NSCameraUsageDescription</key> <string>需要您的同意,才能访问相机</string> <key>NSMicrophoneUsageDescription</key> <string>需要您的同意,才能访问麦克风</string> <key>NSContactsUsageDescription</key> <string>需要您的同意,才能访问通讯录</string> <key>NSLocationWhenInUseUsageDescription</key> <string>需要您的同意,才能访问位置</string> <key>NSLocationAlwaysUsageDescription</key> <string>需要您的同意,才能访问位置</string> <key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <string>需要您的同意,才能访问位置</string> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值