自己写的api token授权机制
来源:互联网 发布:海鹰数据库 编辑:程序博客网 时间:2024/04/30 21:10
基于laravel框架 路由自己写啊
class TestController extends Controller{ private $redis; function __construct() { $this->redis = Redis::connection(); } public function token() { // 数据库中的帐号密码验证通过 // 服务器发放token $username = request('username'); $password = request('password'); if ($username == "interface" && $password == "12345") { $token = md5(time() + mt_rand(1000, 9999)); $refresh_token = md5($token); $this->redis->set($token, $token); echo json_encode([ 'access_token' => $token, 'refresh_token' => $refresh_token, 'expire_time' => 300, 'timestamps' => time() ]); $this->redis->expireAt($token, time() + 300); $this->redis->select(1); $this->redis->set($refresh_token, $refresh_token); $this->redis->expireAt($refresh_token, time() + 36000); $this->redis->select(2); $oldToken = $this->redis->hGet($username, 'access_token');//获取旧的token $oldRefreshToken = $this->redis->hGet($username, 'refresh_token');//获取旧的refresh_token $this->redis->hSet($username, 'access_token', $token); $this->redis->hSet($username, 'refresh_token', $refresh_token); $this->redis->expireAt($username, time() + 36000); $this->redis->select(0); $this->redis->del($oldToken); $this->redis->select(1); $this->redis->del($oldRefreshToken); } else { return response()->json([ 'result_code' => 0, 'result_info' => 'No authorization!' ]); } } public function refresh_token() { $refresh_token = trim(request('refresh_token')); $username = trim(request('username')); $this->redis->select(1); if ($this->redis->exists($refresh_token)) { echo '存在'; $this->redis->select(2); $old_access_token = $this->redis->hGet($username, 'access_token'); $old_refresh_token = $this->redis->hGet($username, "refresh_token"); $this->redis->del($username); $this->redis->select(0); $this->redis->del($old_access_token); $this->redis->select(1); $this->redis->del($old_refresh_token); $this->redis->select(0); $access_token = md5(time() + mt_rand(1000, 9999)); $refresh_token = md5($access_token); $this->redis->set($access_token, $access_token); echo json_encode([ 'access_token' => $access_token, 'refresh_token' => $refresh_token ]); $this->redis->expireAt($access_token, time() + 300); $this->redis->select(1); $this->redis->set($refresh_token, $refresh_token); $this->redis->expireAt($refresh_token, time() + 36000); $this->redis->select(2); $this->redis->hSet($username, 'access_token', $access_token); $this->redis->hSet($username, 'refresh_token', $refresh_token); $this->redis->expireAt($username, time() + 36000); } else { return response()->json([ 'result_code' => 0, 'result_info' => 'No authorization!' ]); } } public function resources() { $token = request('access_token'); if ($this->redis->exists($token)) { echo "请求成功"; $this->redis->expireAt($token, time() + 300); } else { return response()->json([ 'result_code' => 0, 'result_info' => 'No authorization!' ]); } }}
1 0
- 自己写的api token授权机制
- 新浪微博Oauth2.0授权 获取Access Token以及API的使用
- 新浪微博Oauth2.0授权 获取Access Token以及API的使用
- 新浪微博Oauth2.0授权 获取Access Token以及API的使用
- 新浪微博Oauth2.0授权 获取Access Token以及API的使用
- 新浪微博Oauth2.0授权 获取Access Token以及API的使用
- 新浪微博Oauth2.0授权 获取Access Token以及API的使用
- Token的机制
- C#自己写的报错机制
- dropbox ios授权token的使用
- yii2 RESTful 接口 api -6: 写一个自己的api
- ThinkPhp的token验证机制。
- hook api的一个自己写的例子
- 用Middleware给ASP.NET Core Web API添加自己的授权验证
- 自己写的新网域名API,仅供参考
- 基于 OpenCL 的 API 自己写一个编解码器
- 让自己写的程序也有api
- Token API
- docker 个人经验分享
- Android ViewGroup事件分发机制
- Java 获取昨天日期字符串
- SQL——Sql_Server中如何判断表中某字段是否存在
- 将图片内嵌入Markdown文档中
- 自己写的api token授权机制
- jdk环境变量详细配置
- 学习GitHub(一): windows7 64位系统安装msysGit客户端
- OKGO
- 【干货】微信小程序之自动化技术
- VPN拨号连接报789错误解决方法
- 混淆中的jar包冲突
- 最全面的 Material Design 学习资料
- C# 反射机制