前后端分离 微信授权怎么生成自己应用的 API Token

项目情况

目前项目是前后端分离,前端是vue项目,后端是laravel框架开发

业务需求

业务主要是在微信公众号H5网页里面通过微信授权获取用户的openid 昵称 头像等信息,目前openid以及微信的信息可以获取到,但是怎么返回自己应用的token供前端使用,下次请求后端接口的时候直接携带这个token去进行相关业务的操作,之前正常的用户登陆逻辑是先用户名密码登陆,登陆成功后返回前端token,目前把登陆这一步替换成了授权成功获取用户信息后返回token,看了社区的帖子感觉用jwt可以去写接口,想听取下各位大佬的意见,给小弟指点迷津

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

前端通过微信授权获取 code,然后请求服务端换取用户信息,接下里就是服务端就根据你的用户信息生成 token 返回给你。

4年前 评论
Epona

JWT就可以

4年前 评论

微信授权后可以基于这些信息(可以把openid当作一个key)创建或者关联自己的用户,自己的后端向vue前端分发的是自己的user的token,具体方法各异,目前最新的laravel8推荐用Sanctum,如果只有一个前端也可以用。

如果微信授权只来自一个公众号,可以把openid等信息存在user表里,如果来自多个,则需要扩展一个social表来存储,参考Socialite,而自己发放的token,如果不区分多端,可以存在user表里,如果区分多端,则用Sanctum来存到另一个表里。当然,如果是jwt的话,用户表可以不保留token,jwt自己验证这个token。

3年前 评论

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