前端单页面应用,怎样合理地做微信的网页授权?

目前在开发一个微信应用。前端用Vuejs来做单页面应用,后端用Laravel提供接口。两者分开部署,即前端完全是一个html入口。
现在前端做微信的网页授权我的想法是:
1.前端检测到没有Token就跳转到后端的链接做微信网页授权
2.微信重定向回后端的回调地址,后端根据code拿到微信用户信息后保存进数据库,并且生成token
3.后端带上那个token回到前端单页面应用
4.前端根据这个token调用后端接口识别用户

感觉这个方法很麻烦也不太优雅,也会有很多的重定向跳转。
我想干脆不做单页应用,在后台渲染模板算了,又或者在单页应用的入口用Laravel渲染出来。

问题描述有点混乱,希望大家能明白,谢谢!

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6
leo

这个方法挺好的

7年前 评论

之前我也是这么做的,总觉的别扭。最近发现一个比较优雅的办法。单页应用完全可以看做是手机端的原生 APP,基于这个前提,可以模仿手机 APP 第三方登录授权的流程。如下图:

file

6年前 评论

@jiayx 呃,你这个跟作者说的有什么区别吗?一样的吧?

6年前 评论

@klgd 不一样的,仔细看下?

6年前 评论

@klgd 主要是 code 在前端拿到,由前端发请求传到后端,而不是微信直接回调后端的 url。

6年前 评论

@jiayx 正解,redirect_uri 跳当前页,由微信发送 code 给前端,前端再通过 code 请求后端接口登录验证

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!