После исследования, наконец, вчера произошел прорыв. Поэтому я решил ответить на мой собственный вопрос.
5 баллов, чтобы изменить в моем примере.
Мы должны указать клиенту и серверу IP-адреса или домены для связи , Поэтому я изменил все упоминания происхождения вызовов API на их соответствующие IP-адреса. (Localhost -> 192 ...)
В cors нам нужно указать IP-адрес и номер порта в качестве источника
- В вызовах на стороне клиента, если мы используем fetch, использовать учетные данные: include или, если ax ios использовать withCredentials: true
- В сервере cors должен знать источник, поэтому включайте ваших клиентов ip с портом
- Используйте express -ntlm или node-sspi в качестве windows аутентификатора.
Так что общее изменение в моем коде в примере:
На стороне сервера
var corsOptions = {
origin: 'http://192.168.7.179:3001',
credentials: true,
authenticate: true,
authorization: true,
optionsSuccessStatus: 200
}
app.use(cors(corsOptions))
вместо
app.use(cors())
и на стороне клиента добавьте 'credentials:' include '' в качестве параметра для получения.
change
fetch('http://192.168.7.179:3002/',{
method: 'GET', // *GET, POST, PUT, DELETE, etc.
headers: {
'Content-Type': 'application/json',
}
})
до
fetch('http://192.168.7.179:3002/',{
method: 'GET', // *GET, POST, PUT, DELETE, etc.
credentials: 'include'
})
Вот так, сначала запустите api, затем запустите, когда вы запустите ваше приложение реагирования, и вы получите приглашение для windows auth. Введите учетные данные домена и сервер получит результаты.
Шаги 1. В браузере проверьте, работает ли сервер -> http://192.168.7.179: 3002 /
{"msg ":" ************ Серверный ответ пользователя IUYT \ user1 "}
Регистрация
http://localhost: 3001 / результат -
LocalData - локальный статус
Данные сервера - неизвестны
Состояние вызова API - не установлено
НО
В браузере проверьте, работает ли клиент ->
http://192.168.7.179: 3001 / LocalData is - локальный статус
Данные сервера - {" msg ":" ************ Серверный ответ пользователя IUYT \ user1 "}
Состояние вызова API - 200