Мы используем библиотеку React Native appAuth (https://github.com/FormidableLabs/react-native-app-auth) с Identity Server 4. и пытаемся использовать дополнительные параметры в ответе. Причина этого в том, что у нас есть переключатель языка на странице входа IDS4и мы хотим отправить выбранный язык обратно в собственное приложение, и библиотека appAuth получит его, чтобы приложение могло соответствующим образом настроить. Как мне изменить Identity Server для этого
return authorize(Auth.getConfig())
.then(authDetails => {
const { lang } = authDetails.additionalParameters;
if (!lang) return authDetails;
return Auth.setUserLang(lang, authDetails.accessToken).then(() => authDetails);
})
.then(authDetails => {
store.dispatch(addAuth(authDetails));
return authDetails;
})
.catch(e =>
Auth.logout().then(() => {
throw e;
})
);
static getConfig() {
const { apis: { identityServerURL } } = store.getState();
return {
issuer: identityServerURL,
clientId: IDENTITY_SERVER_CLIENT_ID,
redirectUrl,
additionalParameters: {},
scopes: ['openid', 'profile', 'offline_access'],
dangerouslyAllowInsecureHttpRequests: true,
};
}
Я пытался использовать ICustomAuthorizeRequestValidator
context.Result.ValidatedRequest.RedirectUri = $"{context.Result.ValidatedRequest.RedirectUri}?lang={context.Result.ValidatedRequest.UiLocales}";
, но это не работает как ошибки сервера идентификации с «Error», «MessageTemplate»: «Invalid redirect_uri: {redirectUri}, ожидается {exceptionRedirectUri}", »Свойства ": {" redirectUri ":" icisapp: / oauthredirect "," кромеRedirectUri ":" icisapp: / oauthredirect? Lang = zh "
У кого-нибудь есть идеи?