前言:
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。国内的新浪,百度,QQ登录,微信登录等等都是运用的该协议。目前需要在其他正在开发的项目中使用另一个项目的账号来作为登录账号,那么就需要运用这个协议来实现。
一、选择使用OAuth2 的简述:
在前阵子开发陪练订单系统和打赏系统,由于考虑到交易的安全的性,就考虑到了token(令牌)的问题,因此查询了关于OAuth2的一些资料就找了关于OAuth2 Server PHP 来实现OAuth2 Server的扩展程序。
二、下载地址:下载
三、查遍了网上各种文档,技术文章,基本都是使用Authorization_code(授权码的方式)与目前项目需求有差别,下面我这边使用的是密码的方式,并且使用redis进行存储token数据
在服务器端新建了一个类工具代码:TokenUtil 类,MyRedis类,这里也用到Predis类库,可从这个地址下载:下载,若使用composer就跟方便了
TokenUtil 类:
<?php
/**
* Created by PhpStorm.
* User: wyb
* Date: 2017/11/28
*/
namespace Common\Tools;
use OAuth2\GrantType\RefreshToken;
use OAuth2\GrantType\UserCredentials;
use OAuth2\Request;
use OAuth2\Response;
use OAuth2\Scope;
use OAuth2\Server;
use OAuth2\Storage\Memory;
class TokenUtil {
public $codeMsg=[];
/**
* 获取token
* @return array
*/
public function getToken()
{
$server = $this->getServer();
/** @var Response $response */