【问题标题】:Okta Not Redirecting due to insecure connection由于连接不安全,Okta 未重定向
【发布时间】:2026-02-08 00:15:01
【问题描述】:

我从合作伙伴网站收到了与他们建立 SSO 的请求,他们向我们提供了他们的 OKTA 密钥。

Vue.use(Auth, {
  issuer: 'https://{theirURL}.com/',
  clientId: '{theirCliendId}',
  redirectUri: 'http://localhost:8080/auth/callback',
  scope: 'openid profile email'
})


let token = {};

const handleAuth = cb => {
  webAuth.parseHash((error, authResult) => {
    if (authResult && authResult.accessToken && authResult.idToken) {
      token.accessToken = authResult.accessToken;
      token.idToken = authResult.idToken;
      token.expiry = new Date().getTime() + authResult.expiresIn * 100000000;
      cb();
    } else {
      console.log(error);
    }
  });
};

const isLogged = () => {
  console.log("heyt", token)
  return token.accessToken && new Date().getTime() < token.expiry;
};

const login = () => {
  webAuth.authorize();
};

const logUserOut = () => {
  token = {};
};

以上是我用于设置的代码,我能够从我的网站访问他们的登录页面,并且能够登录。

但是,当它重定向到我这边(本地主机)时,它给了我如下错误

此站点无法提供安全连接

我做错了什么?在本地主机上测试是不可能的吗?他们在开发时一定是在 localhost 上进行测试的。

请告诉我该怎么做!! 提前致谢!

编辑:

从源访问“https://{theirURL}”获取 'http://localhost:8080' 已被 CORS 策略阻止:否 请求中存在“Access-Control-Allow-Origin”标头 资源。如果不透明的响应满足您的需求,请设置请求的 模式为“no-cors”以获取禁用 CORS 的资源。

此消息在登录并尝试重定向回我的页面后显示在控制台上。

【问题讨论】:

  • 您用来启动开发服务器的命令是什么?
  • @kissu npm run serve
  • 尝试将/oauth2/default添加到发行者。
  • @MattRaible 他们的授权网址是 /oauth/authorize。我能够进入登录阶段
  • 我正在讨论发行者,而不是授权端点。 Okta 有两种授权服务器。 org Auth 服务器无法在 Okta 之外验证 JWT。 developer.okta.com/docs/reference/api/authorization-servers

标签: vue.js security single-sign-on openid okta


【解决方案1】:

最快最简单的解决方案如下:

"serve": "vue-cli-service serve --https true"

然后,当它警告您连接不安全并且您已准备好在本地主机上使用 https 时说“好的”!

如本回答所示:https://*.com/a/64149923/8816585

【讨论】:

  • Access to fetch at 'https://{theirURL}/.well-known/jwks.json' from origin 'https://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. 我仍然收到此错误。
  • 这是一个完全不同的问题。 CORS 是一项需要在后端(我猜这里是 okta 仪表板)完成的安全工作,以将您的 localhost 列入白名单(并允许您的客户端代码对其服务执行操作)。快速搜索可能会给你很多结果!
  • 您认为是合作伙伴网站的设置导致了问题吗?我应该要求他们将 localhost CORS 列入白名单吗?
  • 是的,没错。另外,一定要给他们端口(@98​​7654325@),因为localhost通常不足以提供这种服务。