微信小程序 > 微信公开课 > 小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制
微信小程序,微信公开课,小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制

小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制

2019-04-03 15:16:50

如何看待微信公开课小程序热门讨论「小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制」
摘要:小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制
展开:公众号网页授权时,将用户浏览器跳转到如下URL时:https://open.weixin.qq.com/connect/oauth2/authorize?response_typecodeappidwx00000000redirect_urihttp%3A%2F%2Fxxxx.com%2FSigninWeChatscopesnsapi_userinfostategte35Te4YzeF7PZ8foHHoeMFMNP4oswVtJ6EMBODUX42LM_zw4vEbD2D3HtUvGB22mEB61BAj9P8ZcIUIPFffnptSpiPEc7w7sdr3l4ERxmEsJ2uKCmEfaSClSeUnxYBwlNdXJTHqVuufJfvhkAhY8vt28puqV4B9ioPcSWIXyDS6KlbnyMYyMo55OtrnSMwh6Jt9hczPPxvK_f20nFV_4rHEt8x7lWD6oSeRUs得到错误:出错时state参数的长度为235个字符。authorize接口要求state长度最长128字符:这个长度是远远不够的。比如上面的请求中,我在state中保存了一个用于防范CSRF攻击的字段(https://tools.ietf.org/html/rfc6749section10.12),以及回调后的路由信息。在OAuth2.0规范(https://tools.ietf.org/html/rfc6749)中,state用于保存客户端的状态,以便在授权回调时恢复状态。规范中并未指定该参数的长度,在实际应用中,该参数可能包含了客户端的路由信息,以及防范CSRF攻击的辅助信息。其长度可能远远大于你方要求的长度。相同长度的参数(甚至更长)在Facebook、Twitter、Google、MicrosoftAccount登录时并未出现任何错误。规范中也未申明任何服务提供者对此参数的责任,仅用作在回调时传回。目前我解决这个问题的方法是把路由信息连接到redirect_uri后。类似如下:https://open.weixin.qq.com/connect/oauth2/authorize?response_typecodeappidwx00000000redirect_urihttp%3A%2F%2Fxxxx.com%2FSigninWeChat%3freturnurl%3d%2fsomepathscopesnsapi_userinfostategte35Te4YzeF7PZ8foHHoeMFM.虽然一定程度上可以解决问题,但我不得不写额外的代码确保returnurl参数是一个相对url,否则就成了OAuthietf中说的openredirector,易受攻击:https://tools.ietf.org/html/rfc6749section10.15且,即使state中只保留一个防止CSRF的字段的密文,其长度也很容易超过128字节。所以期望能将此字段的长度限制放宽或干脆去掉。另:此问题权出现于公众号网页授权,开放平台网站应用的app授权无此问题。
标签:小程序
微信小程序,微信公开课,小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制

「小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制」热门讨论订阅

方法1:微信扫描微信公开课小程序码即可订阅热门讨论「小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制」

方法2:微信搜索微信公开课小程序名称进入,即可订阅热门讨论「小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制」

方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热门讨论「小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制」

微信公开课小程序热门讨论「小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。

微信公开课热门讨论「小程序请放开公众平台开网页授权接口中的state参数长度128字符的限制」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。