注意事项:

1、 loginToken是sdk调用login()方法返回的logintoken,不是是时候方法返回的token
2、解密手机号码用的是【RSA加密私钥】,多次尝试不行的话,立刻去重置极光的公钥。重置公钥不需要审核,一下就好了

提示:重置方法
a、生成密钥对
b、公钥去掉换行复制过来就可以了
c、 私钥不用去换行


php代码:

/*** @title : 极光一键登录API* @time  : 2021年12月3日/下午4:06:58*/
function jpushlogin($loginToken='')
{// 请求头部$config = get_addon_config('jpush');$http_header = ['Content-type:application/json','Authorization: Basic '. base64_encode("{$config['AppKey']}:{$config['MasterSecret']}")];$data = curl_post('https://api.verification.jpush.cn/v1/web/loginTokenVerify', ['loginToken'=>$loginToken], $http_header);if(!$data)$this->error('无返回解析数据');if(($data['code']??null) != 8000)$this->error($data['content'],['code'=>$data['code'],'submitdata'=>input()]);// 解密手机号码$string_prefix = '-----BEGIN RSA PRIVATE KEY-----';$string_suffix = '-----END RSA PRIVATE KEY-----';$encrypted = $data['phone'];$key = $string_prefix . "\n" . $config['PrivateKey'] . "\n" . $string_suffix;openssl_private_decrypt(base64_decode($encrypted), $mobile,$key);if(!$mobile || strlen($mobile)!=11)$this->error('一键登录失败,请尝试使用’账号密码登录‘','-1');$user = \app\common\model\User::getByMobile($mobile);if ($user) {if ($user->status != 'normal') {$this->error(__('Account is locked'));}//如果已经有账号则直接登录$ret = $this->auth->direct($user->id);$type = 'login';} else {$ret = $this->auth->register($mobile, Random::alnum(), '', $mobile, ['avatar'=>config('site.newuseravatar')]);$type = 'register';}if ($ret) {$data = ['userinfo' => $this->auth->getUserinfo(),'extend'=>['type'=>$type]];$this->success(__('Logged in successful'), $data);} else {$this->error($this->auth->getError());}
}

极光一键登录PHP方法相关推荐

  1. 极光小课堂 | 极光一键登录集成手册--Android

    前言 某天翻阅极光文档时,发现极光也推出了一键登录,先来看个效果: 说句实在话,而今的互联网变更速度,简直让人目不暇接,单单从用户体验来讲,着实让人各种眼光一亮,闪闪冒金星.现在还能记得 Androi ...

  2. 极光认证初始化失败8005和极光一键登录的流程

    问题一:极光认证初始化失败8005 我遇到的极光认证初始化失败的情况是因为:极光推送的版本我更新了,但是极光推送新版本需要在Manifest中配置两个方法,如图: 极光推送的新版本需要配置的方法没有配 ...

  3. uniapp中调用QQ一键登录实现方法

    要在uniapp中实现QQ一键登录,主要步骤: 1.manifest.json的模块设置中,启用QQ登录,并填入appid 3.新建登录页 <template><view>正在 ...

  4. 极光认证(极光一键登录)JVerification的集成

    第一步 向modul中引入依赖 //极光 api 'cn.jiguang.sdk:jverification:2.6.4' // 此处以2.6.4 版本为例. api 'cn.jiguang.sdk: ...

  5. 在uni-app中如何使用一键登录,如何使用手机号一键登录

    1.首先需要在dcloud开发者控制台开通一键登录, dcloudhttps://dev.dcloud.net.cn/uniLoginhttps://dev.dcloud.net.cn/uniLogi ...

  6. 在uni-app中使用手机号一键登录

    1.首先需要在dcloud开发者控制台开通一键登录 https://dev.dcloud.net.cn/uniLogin 开通一键登录服务, 获取关键最关键的两个参数 ApiKey 和 ApiSecr ...

  7. Flutter手机号一键登录

    手机号一键登录基本上是App的标配,Flutter在这方面也有了一些支持,本篇我们采用极光的jverify插件来实现手机号一键登录的支持. 1. 极光手机号登录插件介绍 首先,我们登录到flutter ...

  8. 本机号码一键登录!推荐 Flutter 极光认证插件

    本机号码一键登录基本成为各个 APP 的标配了. 传统的手机验证码登录方式: 输入手机号: 前端判断手机号是否有效: 后台判断手机号是否有效: 借助第三方下发手机验证码: 前端有一个倒计时,防止验证码 ...

  9. 一键登录——Android实现方法

    最近看到很多 app 都有本机号码一键登录功能,感觉这个功能对于 app 的注册转化和用户体验提升都有很大帮助,相信以后会成为一个主流的验证方式. 一键登录主要功能就是让用户使用本机号码一键登录/注册 ...

最新文章

  1. ffmpeg录屏/摄像头/指定窗口;别名alias设置
  2. 单击“登录”后,用户名和密码显示在地址栏中,不安全
  3. 计算机组成原理第5章-中央处理器
  4. 音视频技术开发周刊 70期
  5. 变量的初始化与使用C语言程序注释,c - (为什么)使用未初始化的变量未定义行为?...
  6. Oracle 直方图理论
  7. 网络爬虫之httpclient的使用
  8. Pytest学习-如何在用例代码中调用fixtrue时传入参数
  9. 用Python如何计算两点间距离
  10. Aptana Studio3安装方式
  11. python爬取中国空气质量在线监测平台分析数据【已更新】
  12. linux系统下(x86_64)安装jdk 1.6(jdk-6u45-linux-x64.bin)
  13. switch()的参数注意项(转)
  14. PDF文件在线压缩方法
  15. 解决maven库中没有Oracle jdbc驱动的问题Cannot resolve com.oracle:ojdbc14:10.2.0.1.0
  16. 阿里、京东、美团等主流互联网公司的最新招聘标准
  17. echarts引入geo地图数据,前端学习记录01
  18. (2/3) plsql使用技巧
  19. CentOS6.6 NTP配置详解
  20. python loadlibrary_使用py2exe教程时出现LoadLibrary(pythondll)失败错误

热门文章

  1. 华为MPLS跨域C1方案实验配置
  2. 1130-host ‘XXX.XX.XXX.111‘ is not allowed to connect this MYSQL server
  3. 微信批量删除朋友圈脚本,使用auto.js编写的免root运行
  4. 通过AOP和IOC改造银行转账案例
  5. UML图的种类和示例
  6. 草图大师里创建动态组件_【干货】SketchUp建模|教你做一个有生命的家具动态组件...
  7. 文件服务器 api,文件服务器说明api · Issue #20 · timfaner/CKplanet · GitHub
  8. c语言和python和java_C语言和Python语言,那个更好?
  9. 关键帧动画html例子,关键帧 | @keyframes
  10. ntp服务器udp协议,windows2003 2008 2012 2016 2019封UDP协议服务器自动同步时间