美文网首页
Laravel中微信网页授权

Laravel中微信网页授权

作者: 曹轩跃 | 来源:发表于2017-08-14 15:53 被阅读0次

说明:本文介绍的教程是基于Laravel5.4版本,Wechat3.0.*版本组件

1. 安装组件

composer require "overtrue/laravel-wechat:~3.0"

注意:如果你用了 laravel-debugbar,请禁用或者关掉,否则这模块别想正常使用!!!

2. 配置

Laravel应用

1 .注册 ServiceProvider:

Overtrue\LaravelWechat\ServiceProvider::class,

  1. 创建配置文件:

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

  1. 请修改应用根目录下的 config/wechat.php 中对应的项即可;
  2. (可选)添加外观(门面)到 config/app.php 中的 aliases 部分:

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

Lumen应用

  1. 在 bootstrap/app.php 中 82 行左右:

$app->register(Overtrue\LaravelWechat\ServiceProvider::class);

  1. ENV 中支持以下配置:
WECHAT_APPID
WECHAT_SECRET
WECHAT_TOKEN
WECHAT_AES_KEY

WECHAT_LOG_LEVEL
WECHAT_LOG_FILE

WECHAT_OAUTH_SCOPES
WECHAT_OAUTH_CALLBACK

WECHAT_PAYMENT_MERCHANT_ID
WECHAT_PAYMENT_KEY
WECHAT_PAYMENT_CERT_PATH
WECHAT_PAYMENT_KEY_PATH
WECHAT_PAYMENT_DEVICE_INFO
WECHAT_PAYMENT_SUB_APP_ID
WECHAT_PAYMENT_SUB_MERCHANT_ID
WECHAT_ENABLE_MOCK
  1. 如果你习惯使用 config/wechat.php 来配置的话,将 vendor/overtrue/laravel-wechat/src/config.php 拷贝到app/config目录下,并将文件名改成wechat.php。

3. 使用

Laravel使用

网页授权实例
<?php
use EasyWeChat\Foundation\Application;
$config = [
  // ...
  'oauth' => [
      'scopes'   => ['snsapi_userinfo'],
      'callback' => '/oauth_callback',
  ],
  // ..
];
$app = new Application($config);
$oauth = $app->oauth;
// 未登录
if (empty($_SESSION['wechat_user'])) {
  $_SESSION['target_url'] = 'user/profile';
  return $oauth->redirect();
  // 这里不一定是return,如果你的框架action不是返回内容的话你就得使用
  // $oauth->redirect()->send();
}
// 已经登录过
$user = $_SESSION['wechat_user'];
// ...
授权回调实例
<?php
use EasyWeChat\Foundation\Application;
$config = [
  // ...
];
$app = new Application($config);
$oauth = $app->oauth;
// 获取 OAuth 授权结果用户信息
$user = $oauth->user();
$_SESSION['wechat_user'] = $user->toArray();
$targetUrl = empty($_SESSION['target_url']) ? '/' : $_SESSION['target_url'];
header('location:'. $targetUrl); // 跳转到 user/profile

注意:上面的例子呢都是基于 $_SESSION 来保持会话的,在微信客户端中,你可以结合 COOKIE 来存储,但是有效期平台不一样时间也不一样,好像 Android 的失效会快一些,不过基本也够用了。

Lumen使用

网页授权实例
<?php
use EasyWeChat\Foundation\Application;

$options = [
            'app_id' => env('WECHAT_APPID'),
            'secret' => env('WECHAT_SECRET'),
            'oauth' => [
                'scopes'   => ['snsapi_userinfo'],
                'callback' => '/oauth_callback',
            ],
        ];
        $app = new Application($options);
        $oauth = $app->oauth;

        // 未登录(未授权)
        if (empty(app('cache')->get('wechat_user'))) {
            app('cache')->put('target_url', '/html');
            return $oauth->redirect();
        } else {
            return redirect('/html');
        }
授权回调实例
use EasyWeChat\Foundation\Application;

 $options = [
            'app_id' => env('WECHAT_APPID'),
            'secret' => env('WECHAT_SECRET'),
            'oauth' => [
                'scopes'   => ['snsapi_userinfo'],
                'callback' => '/oauth_callback',
            ],
        ];

        $app = new Application($options);
        $oauth = $app->oauth;

        // 获取 OAuth 授权结果用户信息
        $user = $oauth->user();
        app('cache')->put('wechat_user', $user->toArray(), 120);

        $targetUrl = empty(app('cache')->get('target_url')) ? '/html' : app('cache')->get('target_url');

        //header('location:'. $targetUrl); // 跳转到 user/profile
        return redirect($targetUrl);
:pray:

注意:$user 里没有 openid, $user->id 便是 openid.如果你想拿微信返回给你的原样的全部信息,请使用:$user->getOriginal();

相关文章

  • Laravel中微信网页授权

    说明:本文介绍的教程是基于Laravel5.4版本,Wechat3.0.*版本组件 1. 安装组件 注意:如果你用...

  • 微信公众号开发(二)

    微信公众号开发文档 微信网页授权 微信客户端中访问第三方网页,可通过 微信网页授权机制 来获取用户信息。授权机制:...

  • 基于Node.js的微信JS-SDK后端接口实现(三)

    微信公众号开发之五微信网页授权 开始之前建议先阅读微信官方文档 微信公众号开发之五微信网页授权 一.网页授权的作用...

  • django: 微信网页授权

    微信网页授权基础知识 网页授权的最终目的就是获取微信的用户信息,微信的网页授权方式有两种 snsapi_base:...

  • 微信开发之微信网页授权

    微信网页授权 所谓的微信网页授权说白了就是 用户微信客户端内访问第三方网页,公众号可以根据网页授权这个机制来获取用...

  • 微信网页授权

    微信通过网页授权可以在网页内获取微信用户信息,进而在网页内实现相关的业务逻辑。 微信网页授权的scope有两种,一...

  • 微信网页授权

    重新整理做过的功能,以及过程遇到问题,温故而知新 平台开发文档 一 准备工作 (a.接入 b.配置) a) 修改/...

  • 微信网页授权

    背景 用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 配...

  • 微信网页授权

    一、(测试号为例)大家可以先查看http://www.cnblogs.com/txw1958/p/weixin71...

  • 微信网页授权

    微信网页授权文档地址: https://mp.weixin.qq.com/wiki?t=resource/res_...

网友评论

      本文标题:Laravel中微信网页授权

      本文链接:https://www.haomeiwen.com/subject/fzpurxtx.html