Snipe-IT支持Oauth2登录

news/2025/11/16 18:27:48/文章来源:https://www.cnblogs.com/aozima/p/19228669

Snipe-IT支持Oauth2登录

Snipe-IT默认支持的第3方登录为:SAML 和 Google Workspace。

不支持添加自定义Oauth2登录。

查了相关文档,

  • https://snipe-it.readme.io/docs/saml

并用casdoork作为idp测试了SAML并没有成功,加上第1次用SAML且比较复杂,不想继续调试。

看到相关讨论

  • Feature Request: OpenID Connect (oidc) relying party support

于是直接小修改几个源码就可以实现自定义Oauth登录了


更新参数检查

app/Models/Setting.php 删除参数限制,原来只支持google

           'thumbnail_max_h'                     => 'numeric|max:500|min:25',
-          'google_client_id'                    => 'nullable|ends_with:apps.googleusercontent.com'

修改URL及JWT

vendor/laravel/socialite/src/Two/GoogleProvider.php

     protected function getAuthUrl($state){
-        return $this->buildAuthUrlFromBase('https://accounts.google.com/o/oauth2/auth', $state);
+        return $this->buildAuthUrlFromBase('https://xxx.com/login/oauth/authorize', $state);}protected function getTokenUrl(){
-        return 'https://www.googleapis.com/oauth2/v4/token';
+        return 'https://xxx.com/api/login/oauth/access_token';}protected function getUserByToken($token){
-        if ($this->isJwtToken($token)) {
-            return $this->getUserFromJwtToken($token);
-        }
-
-        $response = $this->getHttpClient()->get('https://www.googleapis.com/oauth2/v3/userinfo', [
-            RequestOptions::QUERY => [
-                'prettyPrint' => 'false',
-            ],
-            RequestOptions::HEADERS => [
-                'Accept' => 'application/json',
-                'Authorization' => 'Bearer '.$token,
-            ],
+        $response = $this->getHttpClient()->get('https://xxx.com/api/userinfo', [
+            RequestOptions::QUERY => ['access_token' => $token],]);return json_decode((string) $response->getBody(), true);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/967258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20232424 2025-2026-1 《网络与系统攻防技术》实验五实验报告

1.实验内容(1)选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式、该域名对应IP地址、IP地址注册人及联系方式、IP地址所在国家、城市和具体地理位置。(2)尝试获取QQ中某一好友的IP地址,并查询获取该好…

绝对值的性质

本文介绍绝对值的经典方法与例题。 绝对值的化简 若题目给定了数值的范围,那么这个代数式就是可以化简的。 例题 若 \(0<x<10\),求 \(||x-15|+20|+|x-9|\) 的值。 分析:题目中已有数值的范围,直接求出代数式…

软件工程——设计物品复活软件的思考

物品复活系统开发总结:一个软件工程学习过程的回顾与体会 在完成“物品复活系统”这一课程项目的过程中,我第一次较系统地体验了一个软件从需求分析、建模设计、编码实现到测试与文档交付的完整流程。对于一个功能并…

【C++STL :stack queue (二) 】stack 与 queue 的模拟实现与双端队列探秘 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

做题随笔:P14521

Solution 题意 原题链接 感觉题意很难形式化,建议自己读一下。 大概是:给一个定根树,每个点有一个点权,每条边有一个可通过区间,从根开始,带着一个初值向下走,每到一个点把点权加在值上,对初值 \(x\) 的 \(q\)…

《重生之我成为世界顶级黑客》第五章:失败,失败,还是失败

《重生之我成为世界顶级黑客》第五章:失败,失败,还是失败继续肝,趁着有灵感,我也自己看看,感觉还行,凑合能看。晨光透过窗帘的缝隙,在键盘上投下一道细长的光斑。龙傲天深吸一口气,开始了对企鹅公司系统的测试…

Win11系统恢复经典的右键菜单方法(CMD快速执行)

Win11切换经典右键菜单: reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve taskkill /f /im explorer.exe & start explorer.exe Win11恢复回新右…

智能硬件利用小聆AI自定义MCP应用开发操作讲解

智能硬件利用小聆AI自定义MCP应用开发操作讲解2025-11-16 18:11 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …

选拔赛题解

神秘花 变种 \(01\) 背包,原题链接。 回忆普通的 \(01\) 背包,\(dp[j]\) 代表容量为 \(j\) 时所能得到的最大价值,这样操作的时间复杂度为 \(O(nV)\)(其中 \(n\) 代表物品数量,\(V\) 代表容量)。 但是在本题中,…

C++ 中的 **普通筛、埃氏筛、线性筛**,它们都是求质数或判断质数的方法

普通筛、埃氏筛、线性筛,它们都是求质数或判断质数的方法,但原理和复杂度不同。 1️⃣ 普通筛(暴力判断质数) 思路:对每个数 i(2 ≤ i ≤ n),判断它是否能被小于它的数整除。 如果不能整除,则 i 是质数。复杂…

Linux - sudo -i

Linux - sudo -i在 Linux 中,sudo -i 的作用是 启动一个模拟 root 用户登录的环境(login shell),让你进入一个“像是用 root 登录系统一样”的 Shell。 下面是重点解释:✅ sudo -i 做了什么? 当你执行:sudo -i …

利用单片机的TIM模块播放春日影

利用TIM模块演奏音乐 大致思路利用一个定时器输出PWM波控制蜂鸣器音调,另一个定时器模块控制播放的节奏准备部分 设计电路 准备材料导线若干,稳压二极管,无源蜂鸣器设计电路图将蜂鸣器按照极性接分别接在信号源和接…

warp-cli代理

curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpgecho "deb [arch=amd64 signed-by=/usr/share/keyrings/clou…

完整教程:Rust语言特性深度解析:所有权、生命周期与模式匹配之我见

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【2025-11-14】工作压力

20:00一个经受过种种磨难的人在多年以后回想起这些遭遇时,甚至会感到一种乐趣。——[古希腊]荷马《奥德赛》昨晚发现家里已经没有备用洗发水了,何太说要用她快过期的一千块福利积分购买。当我听到“快过期的一千块积…

20232401 2024-2025-1 《网络与系统攻防技术》实验五实验报告

20232401 2024-2025-1 《网络与系统攻防技术》实验五实验报告 1.实验内容1.1 DNS查询获取相关信息 1.2 实际场景获得通信对方的IP并获取地理位置 1.3 nmap扫描靶机获取信息 1.4 Nessus扫描靶机获取信息并尝试利用漏洞 …

do文件仿真 fpga

do文件仿真 fpga 原文连接: https://www.bilibili.com/video/BV1DY411B7aV/?spm_id_from=333.337.search-card.all.click&vd_source=ac9167e61e0c909658ec9e3b6350cd4e