Как получить значение ключа авторизации из заголовков ответаC#

Место общения программистов C#
Ответить
Anonymous
 Как получить значение ключа авторизации из заголовков ответа

Сообщение Anonymous »

На вкладке «Сеть» отображается заголовок, но невозможно получить его во внешнем интерфейсе (Next js)
введите здесь описание изображения
Но когда я Я консолью заголовки ответов, а затем отображается эта штука.
введите здесь описание изображения
Вот мой код интерфейса (Next js)
try {
var path = process.env.NEXT_PUBLIC_BASE_PATH;
const response = await axios.post(
`${path}/api/User/login`,
{
email: values.loginUsername,
password: values.loginPassword,
},
{
headers: {
'Content-Type': 'application/json',
},
withCredentials: true,
}
);

console.log('---responseHeader----', JSON.stringify(response.headers, null, 2));

// Get the authorization header from the response
const authorizationHeader = response.headers['authorization'] || response.headers['Authorization'];
console.log("Authorization header:", authorizationHeader);

// Extract the token from the authorization header
if (authorizationHeader) {
const token = authorizationHeader.split('Bearer ')[1];
localStorage.setItem('authToken', token);
}

// Extract the role from the response data and set it in local storage
const userData = response.data;
if (userData.role) {
localStorage.setItem('userRole', userData.role);
}

// Optionally, perform any action after successful POST
router.push('/');
} catch (error) {
if (axios.isAxiosError(error) && error.response) {
formik.setFieldError('loginPassword', 'Username and password do not match.');
console.error('Error:', error.response.statusText);
} else {
formik.setFieldError('loginPassword', 'Username and password do not match.');
}
}

вот файл моего серверного кода (.yaml)
` nginx.ingress.kubernetes.io/auth-response-headers: "Authorization"
nginx.ingress.kubernetes.io/cors-allow-headers: "Content-Type, Authorization"
nginx.ingress.kubernetes.io/cors-allow-origin: "url"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"`

А вот конфигурация cors в C# .NET
`app.UseCors(options =>
{
options.WithOrigins(corsSettings.BackendUrl, corsSettings.FrontendUrl);
options.AllowAnyMethod();
options.AllowAnyHeader();
options.WithExposedHeaders("Authorization");
});`


Подробнее здесь: https://stackoverflow.com/questions/787 ... se-headers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»