lumen request 获取 header 头参数 token
lumen request 获取 header 头参数 token
1 | $token = $request ->bearerToken(); |
以下是校验 token 合法性的一个方法,可以用在中间件中使用:
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 | /** * 验证 token 合法性 * @param Request $request * @param $err * @return bool * @throws \Exception */ public static function checkToken(Request $request , & $err ) { $token = $request ->bearerToken(); if (! $token ) { $err = 'token not found' ; return false; } $user = []; //检查redis里边是否存在用户token if (Redis::exists(Constant::REDIS_TOKEN_PREFIX . $token )) { $userJson = Redis::get(Constant::REDIS_TOKEN_PREFIX . $token ); if (! $userJson ) { $err = 'data error' ; return false; } $user = JsonHelper::decode( $userJson ); } else { //不存在,就请求GRpc获取 $client = new GRpcClient(); $params [ 'session_id' ] = $token ; $ret = $client ->setCmd(GRpcCmd::CHECK_LOGIN)->send( $params ); if (! is_array ( $ret )) { $err = 'token error:' . $client ->getMsg(); return false; } //获取到之后就存到redis $user [ 'id' ] = $ret [ 'user_id' ]; //用户ID $user [ 'phone' ] = $ret [ 'phone' ]; //手机号 $user [ 'channel' ] = $ret [ 'register_channel' ]; //注册渠道 $user [ 'gold' ] = $ret [ 'gold' ]; //金币 Redis::setex(Constant::REDIS_TOKEN_PREFIX . $token , 7200, JsonHelper::encode( $user )); } return true; } |
此博客主要用于记录相关知识点,大部分内容来自网络文章,特此感谢各位作者
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix