James
1
NodeLoc 是支持 OIDC 协议的,这两天想把 new-api 加一个 NodeLoc 的登陆,然后下载部署了一个 new-api,发现后面是支持 OIDC 的,那么就很简单了。
Well-Known Url
https://conn.nodeloc.cc/oauth2/.well-known/openid-configuration
保存即可。
正常保存会自动从 wellknow 地址拉取相关 url 信息,但是new-api好像有bug,会报错。
那我们手动输入一下。
* **OAuth2授权**: https://conn.nodeloc.cc/oauth2/auth
* **Token端点**: https://conn.nodeloc.cc/oauth2/token
* **用户信息**: https://conn.nodeloc.cc/oauth2/userinfo
三个地址分别对应以上,然后保存即可。
7 Likes
James
5
new-api的bug感觉,我看下源码看看能不能绕过去
James
7
看了下源码是这样的
const submitOIDCSettings = async () => {
if (inputs['oidc.well_known'] && inputs['oidc.well_known'] !== '') {
if (
!inputs['oidc.well_known'].startsWith('http://') &&
!inputs['oidc.well_known'].startsWith('https://')
) {
showError(t('Well-Known URL 必须以 http:// 或 https:// 开头'));
return;
}
try {
const res = await axios.create().get(inputs['oidc.well_known']);
inputs['oidc.authorization_endpoint'] =
res.data['authorization_endpoint'];
inputs['oidc.token_endpoint'] = res.data['token_endpoint'];
inputs['oidc.user_info_endpoint'] = res.data['userinfo_endpoint'];
showSuccess(t('获取 OIDC 配置成功!'));
} catch (err) {
console.error(err);
showError(
t('获取 OIDC 配置失败,请检查网络状况和 Well-Known URL 是否正确'),
);
return;
}
}
也就是想在前端跨域请求,所以被阻止了。
James
12
刷新一下浏览器缓存, 我测试可以了。
Well-Known Url 是 https://conn.nodeloc.cc/oauth2/.well-known/openid-configuration
2 Likes