为什么我在尝试获取 jwt 时收到错误“找不到服务”

问题描述 投票:0回答:1

当我尝试调用 jwt 通过 auth0 进行身份验证时,它会抛出错误:“找不到服务:http://localhost:8000”。

import React, { useContext, useEffect } from 'react'
import Header from '../Header/Header'
import Footer from '../Footer/Footer'
import { Outlet } from "react-router-dom"
import { useAuth0 } from "@auth0/auth0-react"
import UserDetailContext from '../../context/UserDetailContext'
import { useMutation } from "react-query";
import { createUser } from '../../utils/api.js'

const Layout = () => {

    const { isAuthenticated, user, getAccessTokenWithPopup } = useAuth0()
    const { setUserDetails } = useContext(UserDetailContext)

    const { mutate } = useMutation({
        mutationKey: [user?.email],
        mutationFn: (token) => createUser(user?.email, token)
    });

    useEffect(() => {

        const getTokenAndRegister = async () => {
            const res = await getAccessTokenWithPopup({
                authorizationParams: {
                    audience: "http://localhost:8000",
                    scope: "openid profile email"
                }
            })
            localStorage.setItem("access_token", res)
            setUserDetails((prev) => ({ ...prev, token: res }));
            console.log(res)
        }

        isAuthenticated && getTokenAndRegister()
    }, [isAuthenticated]);
    return (
        <>
            <div style={{ background: "var(--black)", overflow: "hidden" }}>
                <Header />
                <Outlet />
            </div>
            <Footer />
        </>
    )
}

export default Layout

auth0Config.js

import {auth} from 'express-oauth2-jwt-bearer'

const  jwtCheck = auth({
    audience: "http://localhost:8000",
    issuerBaseURL: "my url)",
    tokenSigningAlg: "RS256"
})

export default jwtCheck

main.jsx

import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import { Auth0Provider } from "@auth0/auth0-react"

ReactDOM.createRoot(document.getElementById("root")).render(
  <React.StrictMode>
    <Auth0Provider
    domain="my domain)"
    clientId="rmy id)"
    authorizationParams={{
      redirect_uri: "http://localhost:5173"
    }}
    audience="http://localhost:8000"
    scope="openid profile email"
    >
    <App />
    </Auth0Provider>
  </React.StrictMode>
);

Error

我尝试从头开始重写代码,但没有成功。还将所有依赖项更新到最新版本,错误仍然存在。我得到的不是令牌,而是找不到服务。

javascript reactjs node.js jwt auth0
1个回答
0
投票

找不到服务错误表示您正在请求令牌的服务 (http://localhost:8000) 尚未向 Auth0 注册。

¿您是否在 Auth0 仪表板中设置了 API 并配置了...? https://auth0.com/

© www.soinside.com 2019 - 2024. All rights reserved.