Pas*_*cal 5 openid openid-connect identityserver4
通常我必须在我的 IdP 注册授权回调 url/redirect_url。
但是,如果该 redirect_url 始终是用户试图在未经授权的状态下激活的那个,那将意味着我必须在我的 IdP 上注册所有 1000 条可能的路由。
那不能解决!
那我还能做什么?
更新
我使用用于基于 javascript 的应用程序的隐式流。
不知道你用的是哪个流。我将假设隐式流程,但可以调整此解决方案。
大多数客户端通过使用特殊http://mypage/login-callback路由来解决此问题。因此,您只需将此路线注册为redirect_uri. 在重定向到 OIDC 身份验证端点之前,您“保存”了用户请求的路由。通过设置 cookie 或将其存储在sessionstorage. 一旦重定向到login-callback 您提取令牌并检查 cookie/localstorage 键,然后再进行一次重定向。
这是一个使用 oidc-client 的随机角度示例:
async completeAuthenticationAsync() {
// complete login, get tokens etc...
this.user = await this.manager.signinRedirectCallback();
this.emitState();
// check for previously saved URI
var redirect = sessionStorage.getItem("auth:redirect");
if(redirect){
// redirect to route - this is using the angular router
sessionStorage.removeItem("auth:redirect")
this.router.navigate([redirect]);
}
else {
// redirect to start page
this.router.navigate([""]);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:由于您正在寻找官方来源并标记了 Identity Server 4,因此他们在其 Javascript 客户端示例中进行了双重重定向:http : //docs.identityserver.io/en/release/quickstarts/7_javascript_client.html
| 归档时间: |
|
| 查看次数: |
3779 次 |
| 最近记录: |