授权重定向问题,越想越不解。
来源:7-7 微信网页授权前端调试
qq_lcy_7
2019-11-16
参考授权流程中,脑子陷入了死循环。
情景: 我们在一个【起始页面】,要做类似于微信、支付宝等授权行为的时候, 往往url后面会跟一个redirectUrl 。微信、支付宝将授权结果或者预授权票据应答至redirectUrl后面的地址,redirectUrl对应的服务接收到微信、支付宝的票据后,同步访问对应的开放平台,得到openId,最终我们携带openid以‘重定向’进行应答。
问题:redirectUrl对应的服务得到openId后,是怎么重定向回当前用户的呢?
我理解的用户携带redirectUrl访问微信、支付宝后,微信、支付宝应答本次请求,随后挥手该次会话(此处为第一个连接,用户创建,请求完则已经挥手了)。接下来微信、支付宝以新连接带票据请求redirectUrl对应的服务(此处为第二个连接,支付宝、微信创建),随后redirectUrl对应的服务创建第三个连接,用于交互openId,但是最后怎么将openId等参数以重定向方式做为了“第一个链接的应答”进行了回执吖。
2回答
-
你是不是还没有动手实现过?
redirectUrl对应的服务得到openId后,redirectUrl就是controller的方法,Java代码控制怎么跳转。
如果你希望,授权后把原参数带回来,用state字段,文档里写了042019-11-20 -
qq_lcy_7
提问者
2019-11-16
师兄,是过实践过,结果也是正确的,是对结果不理解。
redirectUrl 对应的Controller是有收到正确的参数请求。在这个Controller里面,如果再发生一次重定向行为,他为什么可以正确的重定向回用户一开始访问授权的呢次请求呢?
用户请求的是微信服务器,我收到的是微信的请求,呢我为什么可以用重定作为结果回执给用户一开始的请求呢。。00
相似问题