我知道以前有人问过这个问题,但没有一个答案能解决我的问题。
我正在尝试使用redux为一个网站设置身份验证,我有一个localServer,在投入生产之前我开发并测试了它,azure web服务用于部署
在Localhost上:3000和一个产品
在生产中,添加了环境变量,但基本url被生产的基本url替换,即
https://api.example.com
被example.com取代,example.com是生产服务器的基本URL
这就是我将环境变量添加到.env.local文件中的方式,
API_CLIENT_SECRET='secret here'
CLIENT_TYPE=confidential
API_CLIENT_ID='id here'
API_BASE_URL='https:api.example.com'
这就是我在#authslice.js中的client_secret和客户端id的方式
import { apiSlice } from "../services/apiSlice";
const clientId = process.env.API_CLIENT_ID;
const clientSecret = process.env.API_CLIENT_SECRET;
const authApiSlice = apiSlice.injectEndpoints({
endpoints: (builder) => ({
retrieveUser: builder.query({
query: () => "auth/userinfo/",
}),
这就是我在一个名为apislice.js的文件中调用baseurl的方式
const baseQuery = fetchBaseQuery({
baseUrl: `${process.env.API_BASE_URL}/`,
credentials: "include",
});
我试着在next.config.js中调用它们,如下所示,但它们在生产中不可用
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
appDir: true,
},
env: {
API_BASE_URL: process.env.API_BASE_URL,
API_CLIENT_ID: process.env.API_CLIENT_ID,
API_CLIENT_SECRET: process.env.API_CLIENT_SECRET,
},
};
module.exports = nextConfig;