微信授权 获取授权token的时候 返回的 json 里 scope 字段 为什么一直是 snsapi_base

微信授权 获取授权token的时候 返回的 json 里 scope 字段 为什么一直是 snsapi_base,第1张

微信授权里的步骤为:

1 第一步:用户同意授权,获取code

2 第二步:通过code换取网页授权access_token

3 第三步:刷新access_token(如果需要)

4 第四步:拉取用户信息(需scope为 snsapi_userinfo)

其中,第一步的请求地址是:

对照微信公开文档的表格:

参数                      是否必须                    说明

appid                          是             公众号的唯一标识  

redirect_uri                 是    授权后重定向的回调链接地址,请使用urlencode对链接进行处理  

response_type            是    返回类型,请填写code  

scope                          是    应用授权作用域,snsapi_base (不d出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (d出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)  

state                            否    重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节  

#wechat_redirect        是    无论直接打开还是做页面302重定向时候,必须带此参数

其中有一个参数就是 scope,如果此刻你传过去的是snsapi_base那么到了 第二步 中,微信返回的就是snsapi_base,如果你需要snsapi_userinfo 的话,第一步的时候scope传入snsapi_userinfo 即可

防火墙或安全软件阻止连接。

在使用alist时无法获取token,防火墙或安全软件阻止连接:防火墙或安全软件可能会阻止alist与阿里云盘服务器的连接,从而导致无法获取token,你可以在防火墙或安全软件中添加alist的访问权限,或者尝试关闭防火墙或安全软件。

阿里云盘Open是阿里云盘提供的一组API接口,可以让开发者基于阿里云盘实现文件存储和管理功能,通过阿里云盘Open,开发者可以实现文件的上传、下载、删除、重命名、移动、分享等 *** 作。

访问某个路由时,首先从Cookie中获取Token,验证Token是否存在;

    1如果不存在Token,验证路由是否在白名单中,在白名单中就可以直接访问路由,如果不在白名单中则强制重定向到/login中并且把要访问的路由作为参数携带,当登录成功之后,直接定向到参数中的路由中;

    2如果存在Token,首先判断用户是否访问/login; 如果是,就重定向到登录之后的界面; 如果不是就去获取用户和角色,根据用户角色动态生成可访问的路由(replace模式,访问路由/xxx);发生异常重置Token并且将访问的路由作为参数传递,登陆成功后重定向到要访问的路由上;

Vue中存在如下几种访问Url方式:

    1this$routerpush()

    描述:跳转到不同的url,但这个方法会向history栈添加一个记录,点击后退会返回到上一个页面。    

    2this$routerreplace()

    描述:同样是跳转到指定的url,但是这个方法不会向history里面添加新的记录,点击返回,会跳转到上上一个页面。上一个记录是不存在的。

    3this$routergo(n)

    描述:相对于当前页面向前或向后跳转多少个页面,类似windowhistorygo(n)。n可为正数可为负数。正数返回上一个页面

    所以:使用replace跳过去,不会产生history,用户回退不到/login页面;

报这样的错误是:密码:身份验证令牌 *** 作错误,一般是密码文件的权限的问题,不过也有可能是根目录空间满。 用lsattr命令查看存放用户和密码的文件属性,发现有i选项: (i:不得任意更动文件或目录。)所以导致所有的用户都不能修改密码,因为没有权限允许。

2

我们需要用chattr命令将i权限撤销,然后再修改,就可以了。 在终端输入: #chattr -i /etc/passwd#chattr -i /etc/passwd

3

然后在测试root用户和xiaogang用户修改自己的密码。 测试root用户修改密码 测试xiaogang用户修改密码

4

为了安全起见,最好修改完密码,在把存放用户和密码的文件保护起来。 #用c

token已经放到authorization了还是不行的原因是无法按照规则生成token。本地登录时,没有携带token,直接跳转了。线上访问时,携带token,但是是无效的,就给你了个提示。这种情况,需要有前端逻辑来控制跳转。

解决token无效的方法:

1、需要授权的API,必须在请求头中使用Authorization字段提供token令牌。

2、用户授予第三方应用访问该用户某些资源的权限,在安装手机应用的时候,APP会询问是否允许授予权限访问相册、地理位置等权限。

3、在访问微信小程序时,当登录时,小程序会询问是否允许授予权限获取昵称、头像、地区、性别等个人信息。实现授权的方式有:cookie、session、token、OAuth。

4、需要在mainjs文件里添加axios拦截器然后在请求头中可以发现Authorization的值还是Null,原因就是当你发送的发出的是登录请求,在登录期间服务器没有给你token,如果登录之后调用其他接口再去监听这次请求的话就会发现Authorization的值不再是null了,而是登录后的token。

5、根据授权Authorization的解释,之所以要这么做的原因就是要给token授权访问api接口的权限。

百度百科-Token

未激活权限。招商银行手机银行app是中国招行旗下的手机银行管理软件,如果用户未打开登录检查权限就会导致用户在登录时显示没有登录检查权限并显示token故障码,用户前往招商银行实体店进行检查权限激活即可。

使用Shiro实现有状态登录,即用户登录状态存储在服务器Session中,使用Shiro实现比较简单,我这里暂不进行讨论。

在一些环境中,可能需要把 Web 应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像Session这种东西,而是每次请求时带上token之类的进行用户判断。

使用Shiro实现无状态登录的主要步骤有,禁用缓存、设置不创建session、关闭Session验证、关闭Session存储、注入自定义拦截器、开启Shiro的注解(如@RequiresRoles,@RequiresPermissions)等。

获取token,这里token写死为admin

添加增删改查接口,并设置需要的访问权限

关键是设置不创建Session

主要功能就是拦截>

以上就是关于微信授权 获取授权token的时候 返回的 json 里 scope 字段 为什么一直是 snsapi_base全部的内容,包括:微信授权 获取授权token的时候 返回的 json 里 scope 字段 为什么一直是 snsapi_base、alist挂载阿里云盘open无法获取token、路由和权限校验等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9334252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存