Я создал IdentityServer на основе нового шаблона dotnet "IdentityServer4 Quickstart UI (только ресурсы UI)" (is4ui).
Это хорошо работает вместе с приложением MVC, отображаемым на сервере, но я не могу получитьэто для работы со SPA, используя hellojs.
Я возился с URL, чтобы получить страницу входа с Identity Server.Логика входа работает нормально, но я думаю, что не хватает какой-то небольшой части для правильного перенаправления в мое клиентское приложение с токеном доступа.
Это код, который я использую для инициализации hellojs:
const AuthorityUrl = 'http://localhost:5000';
hello.init({
'openidconnectdemo': {
oauth: {
version: '2',
auth: AuthorityUrl + '/Account/Login',
grant: AuthorityUrl + '/Grant'
},
scope_delim: ' '
}
});
hello.init({
openidconnectdemo: this.authConfig.clientId
});
И это код входа в систему
hello.login('openidconnectdemo', {
redirect_uri: this.authConfig.redirectUrl,
scope: `openid profile`,
response_type: 'token',
display: 'page',
});
В этом коде в AccountController Identity Server пытается перенаправить приложение, но это не удается, так как ReturnUrl имеет значение null:
if (Url.IsLocalUrl(model.ReturnUrl))
{
return Redirect(model.ReturnUrl);
}
else if (string.IsNullOrEmpty(model.ReturnUrl))
{
return Redirect("~/");
}
else
{
// user might have clicked on a malicious link - should be logged
throw new Exception("invalid return URL");
}
DoМне нужно изменить Identity Server, чтобы они работали вместе или в клиентской части чего-то не хватает?
Спасибо за любой совет!