用户授权流程以及常见问题

简介: 用户授权分为静默授权与主动授权1,静默授权(scope = auth_base)可以获取到用户的什么信息呢?使用静默授权可以获取到用户的UserId以及scope是auth_base的token令牌。

用户授权分为静默授权与主动授权

1,静默授权(scope = auth_base)可以获取到用户的什么信息呢?

使用静默授权可以获取到用户的UserId以及scope是auth_base的token令牌。

这个在什么情况下使用呢?

例如:在小程序需要对用户进入小程序的时候就需要用户的UserId来进行标记,然后就可以使用该授权方式,并且直接使用,不会弹出授权窗。避免了首页不能弹出授权窗的尴尬。

2,主动授权(scope = auth_user)可以获取到的用户的信息可以参考文档:[url]https://docs.open.alipay.com/api_2/alipay.user.info.share[/url]  主要是获取用户的头像avatar、nick_name、user_id

3,正常小程序授权流程:

  1. 前端中获取到用户的授权code码。
    my.getAuthCode({
          scopes: 'auth_user',
          success: ({ authCode }) => {
            my.alert({
              content: authCode,
            });
          },
        });​
  2. 在前端获取到的authCode传到服务端后调用接口
    public void getAuth_token() {
    		AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
    		request.setCode("460c52fbe3c64be28fd9c9d0e4acTX10");
    		request.setGrantType("authorization_code");
    		try {
    			AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClientSmallMember.execute(request);
    			if (oauthTokenResponse.isSuccess()) {
    				System.out.println("调用成功" + oauthTokenResponse.getBody());
    			} else {
    				System.out.println("调用失败" + oauthTokenResponse.getSubMsg());
    			}
    			System.out.println(oauthTokenResponse.getAccessToken());
    			getUserInfo(oauthTokenResponse.getAccessToken());
    		} catch (AlipayApiException e) {
    			// 处理异常
    			e.printStackTrace();
    		}
    	}​
  3. 获取到的accessToken令牌去调用获取用户信息的接口
    public void getUserInfo(String token) {
    		AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();
    		AlipayUserInfoShareResponse response;
    		try {
    			response = alipayClientXiaorong.execute(request,token);
    			if(response.isSuccess()){
    				System.out.println("调用成功" + response.getBody());
    				} else {
    				System.out.println("调用失败"+ response.getBody());
    				}
    		
    		} catch (AlipayApiException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}​

     

    正常获取到用户的信息,然后传到前端进行展示使用。

4,ISV商户调用用户授权接口需要注意的点:

 a,前端使用的为模板ID

 b,服务端使用的为第三方应用的Appid

 c,并且第三方应用对模板发起授权获取到APPAUTHTOKEN

 d,代码中需要alipayClient.execute(request,null,APPAUTHTOKEN)这样进行调用接口。

5,常见问题

 Q:无效的访问令牌

 A:scope赋值的信息,与后面调用的接口是不匹配的,例如:scope用的是auth_user,结果后面调用的接口并非alipay.user.info.share,而是芝麻的接口; 获取会员信息,服务端报 isv.invalid-token 无效 token 原因1:获取授权码scope 必须传 auth_user 原因2:调用的接口错误,请使用接口:alipay.user.info.share 你先检查下,发现实在还是解决不了,再把相关的请求信息提供过来,我们帮你查 来源地址:[url]https://openclub.alipay.com/read.php?tid=6629&fid=66[/url]、[url]https://docs.alipay.com/mini/introduce/auth#4-[/url]补充说明。

 Q: 为什么不允许小程序打开就让用户授权获取阿里的id呢??小程序驳回了

 A:小程序禁止首屏强制授权框,建议使用静默授权获取用户的UserId,来进行后面的业务的操作。

 Q:获取用户信息可以获取到用的手机号吗

 A:手机号属于用户的私密信息,由于安全的问题,是不能获取到的。

目录
相关文章
|
5月前
|
存储 弹性计算 安全
阿里云最便宜的云服务器,38元、99元、199元云服务器配置、优势及组合优惠详解
阿里云目前有多款价格非常实惠的云服务器产品,其中轻量应用服务器仅需38元/年,经济型e实例云服务器99元/年,通用算力型u1实例云服务器199元/年,让云服务器购买变得更加亲民。本文将详细介绍这些云服务器的配置、套餐优势、购买规则、注意事项以及组合优惠等内容,帮助大家更详细的了解这几款特惠云服务器,并选择适合自己的云服务器产品。
1325 18
|
负载均衡 Kubernetes 网络协议
注册中心如何选型?Eureka、Zookeeper、Nacos怎么选
这是小卷对分布式系统架构学习的第9篇文章,继续探讨注册中心的原理及选型。文章详细介绍了Eureka、Nacos的工作机制与特点,并对比了Eureka、Nacos、Consul和Zookeeper在一致性协议、健康检查、负载均衡等方面的差异。最后根据不同的应用场景给出了注册中心的选型建议,帮助读者理解如何选择最适合的注册中心。
1229 100
|
存储 缓存 JavaScript
一文带你了解vuex和使用(2024年11月)
欢迎来到我的博客,我是自学前端两年半的大一学生,熟悉JavaScript与Vue,正向全栈发展。本篇介绍了Vuex,Vue.js的状态管理模式,包括其核心概念如state、getter、mutation、action及模块化使用,通过集中管理状态确保应用状态的可预测变化。文章详细解析了Vuex的工作原理,特别是与Vue的computed属性和响应式系统的集成,以及如何在实际项目中搭建和使用Vuex。如果你觉得有帮助,欢迎关注,我将持续更新更多技术文章。🎉🎉🎉
1347 0
|
NoSQL 定位技术 Redis
RedisTemplate.opsForGeo()用法简介并举例
RedisTemplate.opsForGeo()用法简介并举例
958 3
|
XML JSON Java
GRPC与 ProtoBuf 的理解与总结
GRPC与 ProtoBuf 的理解与总结
903 0
|
小程序 前端开发 Java
支付宝小程序 PHP 获取用户手机号 验签解密 RSA解密 AES解密
支付宝小程序 PHP 获取用户手机号 验签解密 RSA解密 AES解密
1906 0
|
编解码 小程序 前端开发
在小程序中实现自适应布局或响应式设计
在小程序中实现自适应布局或响应式设计
|
机器学习/深度学习 存储 算法
数据结构和算法学习记录——树(基本介绍、树的定义、树的特点、树的一些基本术语、树的表示、儿子-兄弟表示法)
数据结构和算法学习记录——树(基本介绍、树的定义、树的特点、树的一些基本术语、树的表示、儿子-兄弟表示法)
449 0
|
JavaScript 前端开发
深入理解Vue.js中的nextTick:实现异步更新的奥秘
深入理解Vue.js中的nextTick:实现异步更新的奥秘
|
JavaScript 开发者
【掰开揉碎】深入了解 @tap 和 @click
【掰开揉碎】深入了解 @tap 和 @click
1016 0