请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

授权重定向问题,越想越不解。

https://img1.sycdn.imooc.com/szimg/5dcfd86909299ae612681097.jpg


参考授权流程中,脑子陷入了死循环。

情景: 我们在一个【起始页面】,要做类似于微信、支付宝等授权行为的时候, 往往url后面会跟一个redirectUrl 。微信、支付宝将授权结果或者预授权票据应答至redirectUrl后面的地址,redirectUrl对应的服务接收到微信、支付宝的票据后,同步访问对应的开放平台,得到openId,最终我们携带openid以‘重定向’进行应答。

问题:redirectUrl对应的服务得到openId后,是怎么重定向回当前用户的呢?

我理解的用户携带redirectUrl访问微信、支付宝后,微信、支付宝应答本次请求,随后挥手该次会话(此处为第一个连接,用户创建,请求完则已经挥手了)。接下来微信、支付宝以新连接带票据请求redirectUrl对应的服务(此处为第二个连接,支付宝、微信创建),随后redirectUrl对应的服务创建第三个连接,用于交互openId,但是最后怎么将openId等参数以重定向方式做为了“第一个链接的应答”进行了回执吖。


正在回答

2回答

你是不是还没有动手实现过?

redirectUrl对应的服务得到openId后,redirectUrl就是controller的方法,Java代码控制怎么跳转。
如果你希望,授权后把原参数带回来,用state字段,文档里写了

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_lcy_7 #1
    redirectUrl 对应的Controller是有收到正确的参数请求。
    
    在这个Controller里面,如果再发生一次重定向行为,他为什么可以正确的重定向回用户一开始访问授权的呢次请求呢?
    用户请求的是微信服务器,我收到的是微信的请求,呢我为什么可以用重定作为结果回执给用户一开始的请求呢。。
    回复 有任何疑惑可以回复我~ 2019-11-16 23:56:20
  • 廖师兄 回复 提问者 qq_lcy_7 #2
    重定向就是跳转到某url,url是你自定的。你还不明白,我建议去看我补充的抓包视频(16-1),可以把跳转过程看得一清二楚。
    回复 有任何疑惑可以回复我~ 2019-11-17 19:32:39
  • 提问者 qq_lcy_7 回复 廖师兄 #3
    认真在看了次url的变化以及跳转信息,原来最后的controller中的redirect行为 并不要求作为第一次授权请求的应答,谢谢师兄~~新课已购,祝大卖~
    回复 有任何疑惑可以回复我~ 2019-11-18 11:56:01
提问者 qq_lcy_7 2019-11-16 23:55:49

师兄,是过实践过,结果也是正确的,是对结果不理解。

redirectUrl 对应的Controller是有收到正确的参数请求。

在这个Controller里面,如果再发生一次重定向行为,他为什么可以正确的重定向回用户一开始访问授权的呢次请求呢?
用户请求的是微信服务器,我收到的是微信的请求,呢我为什么可以用重定作为结果回执给用户一开始的请求呢。。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信