PHP Oauth授权和本地加密实现方法

1.Oauth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方

关键字:appKey appSecret token(令牌)

2.SSO授权

如果本地手机装有微博客户端,则直接跳转到微博客户端,只需点击授权按钮,就可以登陆了

qq第三方登陆使用Oauth2.0实现,测试代码

点击下面的连接

https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101334262&redirect_uri=http://www.qingguow.cn/sso.php

具体代码sso.php文件:

<?php // qq登陆类 class Sso{ const APP_ID="101334262"; const APP_KEY="xxxxxxxxxxxxxxx"; //初始化 public static function init(){ header("content-type:text/html;charset=utf-8"); } //主函数 public static function main(){ //请求控制 $action=$_GET['action']; if(!empty($action)){ Sso::$action(); return; } $par = 'grant_type=authorization_code' . '&client_id='.Sso::APP_ID . '&client_secret='.Sso::APP_KEY . '&code='.$_REQUEST['code'] . '&redirect_uri='.urlencode('http://www.qingguow.cn/sso.php'); $rec=Sso::postUrlContents("https://graph.qq.com/oauth2.0/token",$par); if(strpos($rec, 'access_token') !== false) { parse_str($rec, $accessToken); $openidJson=Sso::getUrlContents("https://graph.qq.com/oauth2.0/me?callback=callback&access_token={$accessToken['access_token']}"); $openidJson=str_replace("callback( ", "", $openidJson); $openidJson=str_replace(");", "", $openidJson); $openidJson=json_decode($openidJson,true); header("location:sso.php?action=getQQinfo&openid={$openidJson['openid']}&access_token={$accessToken['access_token']}"); } } //获取用户信息 public static function getQQinfo(){ Sso::init(); $openid=$_GET['openid']; $access_token=$_GET['access_token']; $userJson=Sso::getUrlContents("https://graph.qq.com/user/get_user_info?openid={$openid}&access_token={$access_token}&oauth_consumer_key=".Sso::APP_ID); $user=json_decode($userJson,true); print_r($user); } //get方式请求数据 public static function getUrlContents($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); curl_close($ch); return $result; } //post请求数据 public static function postUrlContents($url,$data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; } } Sso::main();

以上这篇PHP Oauth授权和本地加密实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

时间: 2024-09-25 03:08:15

PHP Oauth授权和本地加密实现方法的相关文章

PHP Oauth授权和本地加密实现方法_php实例

1.Oauth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方 关键字:appKey appSecret token(令牌) 2.SSO授权 如果本地手机装有微博客户端,则直接跳转到微博客户端,只需点击授权按钮,就可以登陆了  qq第三方登陆使用Oauth2.0实现,测试代码 点击下面的连接 https://graph.qq.com/oauth2.0/authorize?response_type=

网站安全之ASP程序加密/解密方法大揭密

安全|程序|加密|解密 如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题,网上求解这类问题的帖子非常多,下面我们就来谈谈ASP程序的加密方法. 一.如何加密ASP程序? 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密.组件加密.自编程序加密,下面我们就来展开介绍这三种加密方法. 1.使用微软的MS Script En

Win7/8系统启动BitLocker为磁盘加密的方法

  1.Windows7/8系统启动BitLocker为磁盘加密的方法 步骤:左键双击桌面上的控制面板(控制面板已放到桌面),在打开的控制面板窗口,左键双击:BitLocker驱动器加密; 2.如果我们要加密驱动器 H:/,则在BitLocker驱动器加密窗口,打开驱动器H,再点击:启用BitLocker; 3.在BitLocker驱动器加密(H:)窗口,我们左键点击:使用密码解锁驱动器(P)打勾,在下面的两个密码框内输入密码,再点击:下一步; 4.备份恢复密码,我们选择一种自己喜欢的方法,如:

iOS开发之路--微博OAuth授权_取得用户授权的accessToken_IOS

最终效果图: OauthViewController.m // // OauthViewController.m // 20_帅哥no微博 // // Created by beyond on 14-8-5. // Copyright (c) 2014年 com.beyond. All rights reserved. // 授权控制器,仅运行一次,取得了当前用户的access_token和uid之后,存档,切换窗口的主控制器 #import "OauthViewController.h&quo

分享PHP源码批量抓取远程网页图片并保存到本地的实现方法_php实例

做为一个仿站工作者,当遇到网站有版权时甚至加密的时候,WEBZIP也熄火,怎么扣取网页上的图片和背景图片呢.有时候,可能会想到用火狐,这款浏览器好像一个强大的BUG,文章有版权,屏蔽右键,火狐丝毫也不会被影响. 但是作为一个热爱php的开发者来说,更多的是喜欢自己动手.所以,我就写出了下面的一个源码,php远程抓取图片小程序.可以读取css文件并抓取css代码中的背景图片,下面这段代码也是针对抓取css中图片而编写的. <?php header("Content-Type: text/ht

oracle中rman备份集加密的方法

 下面我们来看看一个oracle中rman备份集加密的方法,希望这个例子能帮助到各位朋友了.   数据的安全越来越重要,不是说你的生产库安全,你的数据就一定安全了,rman备份也是泄露数据的一个重要地方,如果别人拿到了你的备份集,一样等同入侵了你的生产库.为了rman备份的安全,最简单方式就是使用set encryption方式在rman备份过程中设置密码,需要版本为10.2及其以后企业版版,另外如果需要备份到带库只能使用oracle自己的osb(Oracle Secure Backup),注意

python实现DES加密解密方法实例详解

  本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优化 1. desstruct.py DES加密中要使用的结构体 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

PHP下载远程文件到本地存储的方法

 这篇文章主要介绍了PHP下载远程文件到本地存储的方法,实例分析了php远程文件的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP下载远程文件到本地存储的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 <?php function GrabImage(

C#常用字符串加密解密方法封装代码

 这篇文章主要介绍了C#常用字符串加密解密方法封装代码,有需要的朋友可以参考一下    代码如下: //方法一 //须添加对System.Web的引用 //using System.Web.Security; /// <summary> /// SHA1加密字符串 /// </summary> /// <param name="source">源字符串</param> /// <returns>加密后的字符串</retu