php 限制微信登陆,一个基于thinkphp的微信授权登陆功能

凌运恒
2023-12-01

共享一份基于thinkphp开发的用户授权登陆的功能代码,本实例使用thinkphp的第三方微信公众平台PHP-SDK,地址https://github.com/dodgepudding/wechat-php-sdk 自行下载引入即可

新建控制器 PublicController

namespace App\Controller;

use Think\Controller;

class PublicController extends Controller{

public function _initialize(){

if(!$_SESSION['openid']){

Vendor("Wechat.wechat#class");

$config = M ( "Wxconfig" )->where ( array (

"id" => "1"

) )->find ();//获取微信的配置信息 appid,appsecret

$options = array (

'appid' => $config ["appid"], // 填写高级调用功能的app id

'appsecret' => $config ["appsecret"], // 填写高级调用功能的密钥

);

$weObj = new \Wechat ( $options );

$url=$_SERVER["REQUEST_SCHEME"].'://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];

if(empty($_GET['code'])){

$url_get=$weObj->getOauthRedirect($url);

redirect($url_get);

}else{

$access_token=$weObj->getOauthAccessToken();

$userinfo=$weObjgetOauthUserinfo($access_token['access_token'],$access_token['openid']);

$data['openid']=$access_token['openid'];

$data['username']=$userinfo['nickname'];

$data['pic']=$userinfo['headimgurl'];

$result = R("Api/MemberApi/addOauth", array($data));

$_SESSION['openid']=$access_token['openid'];

if($result){

redirect($url.'&openid='.$access_token['openid']);

}

}

}

}

}

接下来只需继承该类就可以了

微信授权登陆接入第三方App(步骤总结)Android。

这几天开发要用到微信授权的功能,所以就研究了一下.可是微信开放平台接入指南里有几个地方写的不清不楚.在此总结一下,以便需要的人. 很多微信公众平台的应用如果移植到app上的话就需要微信授权登陆了. 目 ...

微信授权登陆接入第三方App(步骤总结)Android

微信授权登陆接入第三方App(步骤总结)Android Android App实现第三方微信登录

基于php实现QQ授权登陆

第一步: 首先登陆QQ互联首页https://connect.qq.com/进行个人/企业认证.大概审核时间在一周左右. 认证通过之后创建应用: 这里主要用到应用的APP ID 和 APP Key  ...

oAuth2授权协议 & 微信授权登陆和绑定 & 多环境共用一个微信开发平台回调设置

OAuth2(open Auth)开放授权协议 授权码模式流程: 1.浏览器(客户端)点击一个比如使用微信登陆按钮 2.会跳到认证服务器页面,让用户选择是否授权 3.如果用户点击授权,那么会跳转到开始 ...

(转)php-curl响应慢(开发微信授权登陆时碰到的问题)

最近在做一个php小项目的时候,发现curl调用微信的授权api.weixin.qq.com,经常是需要等待很久,但是有时候却很快. 刚开始以为是网络慢问题,没去注意.后面通过打上时间日志观察发现,慢 ...

一个基于JBoss5.1+EJB3.0 登陆应用

花了几天的时间研究了一下EJB的使用,一直以来都主要是在写终端中的程序,对Java框架的相关的开发非常不熟悉,中间遇到了不少麻烦,还好总算都攻克了.写篇日志记录一下. 经验总结 为什么选择JBoss5 ...

Asp.netCore 3.0 Web 实现Oauth2.0微信授权登陆的测试

1:Oauth2.0授权的流程截图 官方流程如下: 1 第一步:用户同意授权,获取code 2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果 ...

cocos2dx 3.9 微信授权登陆后游戏进程结束解决办法

找到 Cocos2dxActivity.java 文件夹 里面的 onDestroy() 方法 if (mGLSurfaceView != null) {            Cocos2dxHel ...

vue 微信授权解决方案

背景 前后端分离项目 - SpringSocial 绑定与解绑社交账号如微信.QQ2018-08-14更新时隔四个月第一次更新,因为项目重构有一次接触到了微信授权,思路已经比原来清晰的多了,将重新修改 ...

随机推荐

Balanced Lineup

Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 49061   Accepted: 22975 Case Time Lim ...

QF——OC内存管理详解

堆的内存管理: 我们所说的内存管理,其实就是堆的内存管理.因为栈的内存会自动回收,堆的内存需要我们手动回收. 栈中一般存储的是基本数据类型变量和指向对象的指针(对象的引用),而真实的对象存储在堆中.因 ...

linux内核编译环境配置

linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...

Ubuntu16.04安装piwik3.0.1

1.安装PHP环境 sudo apt-get install php7.0-fpm   2.下载piwik3.0.1 https://piwik.org/download/ 下载后解压到/var/ww ...

Postgresql 创建SEQUENCE,Springboot中使用KeyHolder

项目中使用到JdbcTemplate中的KeyHolder,代码如下: String sql = "insert into web_users(username, password, pho ...

Oracle 经典面试题

第一题 create table test( id ) primary key, type ) , t_id ), value ) ); ,,,'张三'); ,,,'男'); ,,,'); ,,,'刘 ...

LQFP(未整理完成)

注意:文中所提供的链接有可能会失效.不定期维护,如有异常,期待指正,谢谢! LQFP48 7 x 7 mm 图片来源:https://www.st.com/resource/en/datasheet/ ...

C# 指定程序打开指定文件

Process process = new Process(); process.StartInfo.FileName = 指定程序exe文件路径: process.StartInfo.Argumen ...

Java集合框架学习

集合框架 集合框架的目标 该框架必须是高性能的.基本集合(动态数组,链表,树,哈希表)的实现必须是高效的. 该框架允许 不同类型的集合,以类似的方式工作,具有高度的互操作性. 对一个集合的扩展和适应必 ...

poj-2406(字符串hash)

题目链接:传送门 思路:字符串hash,终止条件竟然判断错了,真是太大意了. #include #include #include

 类似资料: