当我尝试调用 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
import {auth} from 'express-oauth2-jwt-bearer'
const jwtCheck = auth({
audience: "http://localhost:8000",
issuerBaseURL: "my url)",
tokenSigningAlg: "RS256"
})
export default jwtCheck
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>
);
我尝试从头开始重写代码,但没有成功。还将所有依赖项更新到最新版本,错误仍然存在。我得到的不是令牌,而是找不到服务。
找不到服务错误表示您正在请求令牌的服务 (http://localhost:8000) 尚未向 Auth0 注册。
¿您是否在 Auth0 仪表板中设置了 API 并配置了...? https://auth0.com/