详解用vue.js和laravel实现微信授权登陆


Posted in Javascript onJune 23, 2017

在laravel框架我们使用安正超的package

网址:https://easywechat.org/

有专门的针对laravel的安装包,请参见如下网址:https://github.com/overtrue/laravel-wechat

下面来说说具体的安装:

1.安装package

composer require overtrue/wechat

2.在app/config/app.php 中注册 ServiceProvider

Overtrue\LaravelWechat\ServiceProvider::class,

3.创建配置文件

php artisan vendor:publish --provider="Overtrue\LaravelWechat\ServiceProvider"

请修改应用根目录下的 config/wechat.php 中对应的项即可

4.添加外观到 config/app.php 中的 aliases 部分:

'wechat' => Overtrue\LaravelWechat\Facade::class,

5.添加路由

Route::any('/wechat', 'WechatController@serve');//控制器请按自己的实际情况填写

特别注意:因为laravel自带token验证,建议使用laravel-cors解决跨域问题,具体安装见github地址:https://github.com/barryvdh/laravel-cors

6.控制器添加如下代码:

/**
   * 处理微信的请求消息
   *
   * @return string
   */
  public function serve()
  {
    $wechat = app('wechat');
    $wechat->server->setMessageHandler(function($message){
      return "欢迎关注 overtrue!";
    });

    return $wechat->server->serve();
  }

7.配置好了路由和控制器,就得到了微信授权所需的URL,此时打开微信公众平台,在“开发—基本配置”页面,点击“修改配置”按钮,得到:

详解用vue.js和laravel实现微信授权登陆

修改配置页面

1) 将刚才的URL填入URL输入框内

2) token可自定义

3) EncodingAESKey 可随机生成

4) 消息加密用安全模式

8.在.env文件中配置以下参数

#微信配置,若不知道WECHAT_TOKEN和WECHAT_AES_KEY请继续往下看
WECHAT_APPID=
WECHAT_SECRET=
WECHAT_TOKEN=
WECHAT_AES_KEY=
#微信支付用
WECHAT_PAYMENT_MERCHANT_ID=
WECHAT_PAYMENT_KEY=

最后一步,填写完成后提交,微信将会调用此URL接口来验证,如果验证成功,就通过配置。

在公众平台,还有一项重要配置,如下:

在微信公众平台“接口权限”—“网页授权”—“网页授权域名”,填上服务器端域名(注:请仔细阅读平台上要求,特别注意得是,这里是服务器域名,不是客户端域名!)

接下来就可以实现微信授权登陆的功能了

10.在 app/Http/Kernel.php 中添加路由中间件:

protected $routeMiddleware = [
  // ...
  'wechat.oauth' => \Overtrue\LaravelWechat\Middleware\OAuthAuthenticate::class,
];

10.在路由中添加授权登陆的路由

Route::group(['middleware' => ['wechat.oauth']], function () {
  Route::get('/auth','UsersController@wechatAuth');
});

11.在以上路由相应的控制器中添加wechatAuth方法

public function wechatAuth(Request $request)
  {
    $userinfo = session('wechat.oauth_user')->original; // 拿到授权用户资料

    //这里写用户注册到mysql的相关逻辑代码,请自行补充

  }

12.在微信中打开此路由下的url就发现出现微信认证的界面,如未成功请自行检查你的配置和代码。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中打印当前的时间实现思路及代码
Dec 18 Javascript
js形成页面的一种遮罩效果实例代码
Jan 04 Javascript
js加减乘除丢失精度问题解决方法
May 16 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
Sep 22 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 Javascript
浅析node.js的模块加载机制
May 25 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
May 31 Javascript
JavaScript类的继承操作实例总结
Dec 20 Javascript
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
浅析vue中的MVVM实现原理
Mar 04 Javascript
小程序实现分类页
Jul 12 Javascript
JavaScript cookie原理及使用实例
May 08 Javascript
妙用Angularjs实现表格按指定列排序
Jun 23 #Javascript
VUE中v-model和v-for指令详解
Jun 23 #Javascript
JavaScript正则表达式简单实用实例
Jun 23 #Javascript
js中的事件委托或是事件代理使用详解
Jun 23 #Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 #Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 #Javascript
微信小程序组件 marquee实例详解
Jun 23 #Javascript
You might like
php 批量替换html标签的实例代码
2013/11/26 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
jQuery事件对象总结
2016/10/17 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
django使用图片延时加载引起后台404错误
2017/04/18 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
护士求职自荐信范文
2014/03/19 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
内乡县衙导游词
2015/02/05 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
环保建议书范文
2015/09/14 职场文书
事业单位岗位说明书
2015/10/08 职场文书