前后端分离 微信授权怎么生成自己应用的 API Token
项目情况
目前项目是前后端分离,前端是vue项目,后端是laravel框架开发
业务需求
业务主要是在微信公众号H5网页里面通过微信授权获取用户的openid 昵称 头像等信息,目前openid以及微信的信息可以获取到,但是怎么返回自己应用的token供前端使用,下次请求后端接口的时候直接携带这个token去进行相关业务的操作,之前正常的用户登陆逻辑是先用户名密码登陆,登陆成功后返回前端token,目前把登陆这一步替换成了授权成功获取用户信息后返回token,看了社区的帖子感觉用jwt可以去写接口,想听取下各位大佬的意见,给小弟指点迷津
关于 LearnKu
前端通过微信授权获取 code,然后请求服务端换取用户信息,接下里就是服务端就根据你的用户信息生成 token 返回给你。
JWT就可以
微信授权后可以基于这些信息(可以把openid当作一个key)创建或者关联自己的用户,自己的后端向vue前端分发的是自己的user的token,具体方法各异,目前最新的laravel8推荐用Sanctum,如果只有一个前端也可以用。
如果微信授权只来自一个公众号,可以把openid等信息存在user表里,如果来自多个,则需要扩展一个social表来存储,参考Socialite,而自己发放的token,如果不区分多端,可以存在user表里,如果区分多端,则用Sanctum来存到另一个表里。当然,如果是jwt的话,用户表可以不保留token,jwt自己验证这个token。