1、开始之前,请一定仔细阅读微信开发者文档文档中,总共写了几个步骤:
- 1、通过appId和需要跳转的路由去请求授权
- 2、授权之后跳转路由中返回的code
注:
前端只需要知道这两个步骤- 3、根据code获取access_token
- 4、根据access_token获取用户信息(snsapi_userinfo授权)
2、前端发起授权请求。这一步需要前端拼凑路由,并且将页面跳转到拼凑路由,路由规则如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的公众appId号&redirect_uri=你的回调路由&response_type=code&scope=你选择的方式&state=STATE#wechat_redirect
注
授权方式可选择为snsapi_userinfo或者snsapi_base,差别请看文档跳转之后授权页面如下(开发者工具效果)
3、点击同意之后,会根据你之前拼凑的回调路由返回code,如下:
http://test.***.com/index?code=021Azdiu12zdXd05kkju1ZYkiu1AzdiR&state=1
4、将路由中的code直接传递给后端,让后端做获取用户信息的系列的逻辑处理。注:
如下是laravel中间件中处理方式,session只用于这次请求,也可以将用户的微信信息放在request中到controller进行逻辑处理,看个人喜好
public function handle($request, Closure $next, $scopes = null) { $wechatCacheKey = 'wechat.oauth_user.default'; if (config("qa.mock_user") == 1){ $user = new SocialiteUser(config('wechat.mock_user')); } else { $code = $request->get("code", ""); if ($code === ""){ $appId = $this->config["app_id"]; return Response::toJson(["aid" => $appId], "请重新获取授权CODE!",10006); } // 开始拉取用户信息 $app = Factory::officialAccount($this->config); $user = $app->oauth->user(); } session([$wechatCacheKey => $user]); } return $next($request); }
注:
这个例子只是写了授权的逻辑,token相关验证我已经做了剔除
坑点:
1、vue的路由会将code拼接在url和#之间,如www.****.com/?code=XXXXX/#/index
,这个code需要单独处理
以上是laravel前后端分离获取微信授权,结合laravel-wechat的详细内容。更多信息请关注PHP中文网其他相关文章!

Laravel优化Web开发流程的方法包括:1.使用路由系统管理URL结构;2.利用Blade模板引擎简化视图开发;3.通过队列处理耗时任务;4.使用EloquentORM简化数据库操作;5.遵循最佳实践提高代码质量和可维护性。

Laravel是一个现代化的PHP框架,提供了强大的工具集,简化了开发流程并提高了代码的可维护性和可扩展性。1)EloquentORM简化数据库操作;2)Blade模板引擎使前端开发直观;3)Artisan命令行工具提升开发效率;4)性能优化包括使用EagerLoading、缓存机制、遵循MVC架构、队列处理和编写测试用例。

Laravel的MVC架构通过模型、视图、控制器分离数据逻辑、展示和业务处理,提高了代码的结构化和可维护性。1)模型处理数据,2)视图负责展示,3)控制器处理用户输入和业务逻辑,这种架构让开发者专注于业务逻辑,避免陷入代码泥潭。

Laravel是一个基于MVC架构的PHP框架,具有简洁的语法、强大的命令行工具、便捷的数据操作和灵活的模板引擎。1.优雅的语法和易用的API使开发快速上手。2.Artisan命令行工具简化了代码生成和数据库管理。3.EloquentORM让数据操作直观简单。4.Blade模板引擎支持高级视图逻辑。

Laravel适合构建后端服务,因为它提供了优雅的语法、丰富的功能和强大的社区支持。1)Laravel基于MVC架构,简化了开发流程。2)它包含EloquentORM,优化了数据库操作。3)Laravel的生态系统提供了如Artisan、Blade和路由系统等工具,提升开发效率。

在这个技术不断进步的时代,掌握先进的框架对于现代程序员至关重要。本文将通过分享 Laravel 框架中鲜为人知的技巧,帮助你提升开发技能。Laravel 以其优雅的语法和广泛的功能而闻名,本文将深入探讨其强大的特性,提供实用技巧和窍门,帮助你打造高效且维护性高的 Web 应用程序。

Laravel 和 ThinkPHP 都是流行的 PHP 框架,在开发中各有优缺点。本文将深入比较这两者,重点介绍它们的架构、特性和性能差异,以帮助开发者根据其特定项目需求做出明智的选择。

在 Laravel 中构建用户登录功能是一个至关重要的任务,本文将提供一个全面的概述,涵盖从用户注册到登录验证的每个关键步骤。我们将深入探讨 Laravel 的内置验证功能的强大功能,并指导您自定义和扩展登录过程以满足特定需求。通过遵循这些一步一步的说明,您可以创建安全可靠的登录系统,为您的 Laravel 应用程序的用户提供无缝的访问体验。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3汉化版
中文版,非常好用

Dreamweaver Mac版
视觉化网页开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器