Проблема:
Я получаю 401 Проблемы с авторизацией при преобразовании сеанса в токен (ConvertSessionToToken) при публикации на нашем сервере аутентификации.
Фон:
- API и сервер аутентификации: ServiceStack v5.5 .NET Core - обслуживается с https://{{confidential}}.azurewebsite.net
- Пользовательский интерфейс: Nuxt подается с http://localhost:3000/
ServiceStack API - Auth Setup
Plugins.Add(new AuthFeature(() => new CustomUserSession(), new IAuthProvider[] {
new JwtAuthProvider(AppSettings)
{
RequireSecureConnection = false,
IncludeJwtInConvertSessionToTokenResponse = true
},
new CredentialsAuthProvider(), //HTML Form post of UserName/Password credentials
}));
Также включен CORS
Plugins.Add(new CorsFeature(
allowOriginWhitelist: new[] {
"http://localhost:3000" },
allowCredentials: true,
allowedHeaders: "Content-Type, Allow, Authorization",
maxAge: 60 * 60)); //Cache OPTIONS permissions
UI - gateway.js
const BaseUrl = "https://acpdapi.azurewebsites.net/"; // .NET Core App Server on Azure
export const client = new JsonServiceClient(BaseUrl);
export const getSessionInfo = async () => {
try {
//Converts Session to JWT Token Cookie
// Issue: 401 Auth - requested resource requires authentication
const authResponse = await client.post(new ConvertSessionToToken());
client.bearerToken = authResponse.accessToken;
//Remove unnecessary JWT from HTTP Headers so only JWT Cookie is used
client.headers.delete("Authorization");
return response;
} catch (e) {
return null;
}
};
export const logout = async () => {
const request = new Authenticate();
request.provider = "logout";
// await getSessionInfo();
await client.post(request);
};
export const login = async (provider, userName, password) => {
console.log("authenticating...");
await logout();
const request = new Authenticate();
request.provider = provider;
request.userName = userName;
request.password = password;
request.useTokenCookie = true;
var response = await client.post(request);
// happy days - I am getting successful token
await getSessionInfo();
//return response;
return `/${provider}`;
};
Вопрос
Я, должно быть, упускаю что-то очень очевидное.При обслуживании .NET Core API с локального сервера (т. Е. http://localhost:5000 или https: /// localhost: 5001 ) у меня не возникает проблем с сообщением.
Таким образом, что такоепроблема - почему у меня возникает проблема аутентификации при поиске ConvertSessionToToken - когда я успешно прошел аутентификацию.
Спасибо