基于TP6 搭建OAuth2.0服务端

最近公司要对接天猫精灵开放平台,接入智能家居,于是研究了OAuth2.0授权协议,踩坑记录就不写了,基于TP6搭建了一套OAuth2.0服务端,只有一个丑陋的登录界面,别介意,希望给能用到的朋友一个参考

 

TP6 OAuth2.0
===============

> 运行环境要求PHP7.1+。

## 安装

1.gitee clone 代码 [仓库地址](https://gitee.com/bokly/oauth2.0.git)
git clone https://gitee.com/bokly/oauth2.0.git
cd oauth2.0
2.composer 安装TP等依赖包

composer install
3.创建数据库 oauth,已有数据库省略此步

4.修改根目录中.env,配置数据库连接信息

5.think 命令创建表,添加数据

//已有数据库,已有 user 表,可删除 database/migrations/xxxx_user.php 文件
php think migrate:run

//已有数据库,已有 user 表,可删除 database/seeds/XxxUser.php 文件
php think seed:run
## 已有数据库的看下面6.7步骤
6.修改配置文件 config/database.php

'oatuh_user_table' => 'user表名'
7.重写 app/api/model/OAuthModel.php 加密验证规则

    public function hashPassword($password)
    {
        return parent::hashPassword($password); // TODO: 如果有自己的加密规则,重写此方法
    }

    public function checkPassword($user, $password)
    {
        return parent::checkPassword($user, $password); // TODO: 如果有自己的加密规则,重写此方法
    }
8.配置域名 xxx.com 指向 public/api.php

9.修改 oauth_clients 表 redirect_uri 为你配置的域名

10.访问 xxx.com?authorize?redirect_uri=http://xxx.com&client_id=testclient&response_type=code&state=1

11.输入 用户名 test, 密码 123456,登录,跳转到 redirect_uri,地址栏有code

//已有用户数据的重写验证规则后,填写自有用户数据

12.Postman 或者其他工具POST请求 http://xxx.com/token

grant_type:authorization_code
client_id:testclient
client_secret:testpass
code:33339de0befe7847645d303ef9df23cb16dbc53e
redirect_uri:http://xxx.com
//测试时如有提示code过期("The authorization code has expired"),可修改 config/database.php auth_code_lifetime 的值,测试完成后修改为30

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值