《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
翻完源码,发现框架并不允许重定向时携带参数,而且,只能重定向至
GET
请求的Path
。所以,单一依赖redirect
方法的话,是行不通的。但是,我可以提供几种曲线救国的方案,你可以参考下:Plan A
http_build_query($request->all())
方法转化为url冒号后的参数,形如name=Mike&age=10
。/oauth/token?name=Mike&age=10
。return redirect($url)
,就可以在另一个接口中通过$request->all()
方法接收到参数了。Plan B
return redirect('/oauth/token')->with('body', $request->all())
的方式,闪存到session
中。oauth/token
接口中,可以通过session('body')
的方式,获取到参数了。这个闪存的参数是一次性的,所以不用担心会占用过多的存储空间。Plan C
return redirect()->action('UserController@oauthToken', $request->all())
的方式,直接调用目标路由对应的控制器中的方法,顺带传参数。Plan D
return app()->make('UserController')->oauthToken($request)
,看上去与上面的方案差不多,但是,这个方案可以跨过 重定向只能是GET请求 的限制。希望这个答案对你有帮助。
没给场景,我脑补一下吧。
/oauth/token
这个路由应该是在API
认证中,通过授权码来获取登录凭据token
这一步的。也就是应用A
找认证中心B
颁发登录凭证。这是两个服务之间的通信,需要接收响应数据的。而redirect
是转交给浏览器来跳转,跳转后就落地到目标系统了,不存在接收响应数据的情况。所以这里应该是楼主理解错了oauth
的认证流程 ,不应该用redirect
,而是做服务端请求。建议先摸清楚
oauth
认证的逻辑与原理,如果是在研究这一块的内容,那么最好先起两个服务用来区分应用与认证中心,否则很容易掉到这个坑里。参考官方文档:将授权码转化为访问令牌 部分:
使用
GuzzleHttp
客户端就行了呀, 获取到结果集合在redirect
不行么.楼主最后是怎么拿到token的,GuzzleHttp 好像是不能请求项目内的接口