首页 文章

使用隐式流来获取Cookie

提问于
浏览
0

使用IDServer3,OWIN,angular2,WebAPI等 .

我在IDSrv中设置了2个客户端,一个MVC和一个JS / Angular,我正在尝试实现SSO . 目前SSO可以通过MVC应用程序(混合流程)登录,因为这将在浏览器中设置cookie,并且当我通过隐式流程导航到登录时将被选中 . 但是,如果我首先尝试通过JS应用程序(隐式流程)登录,则不会设置cookie,因此不会实现SSO . 当我们通过隐式流和混合流登录时,如何配置IDSrv来设置cookie?

编辑:换句话说,是否可以将用于WebAPI的承载令牌auth和用于MVC的cookie auth一起使用,并且仍然可以在两者之间实现SSO .

编辑2:由于答案证实了我的理解,我将再次重述这个问题 . 在JS(角度2)客户端中使用隐式流,如何通过IDSrv中的auth endpoints 进行身份验证时获取令牌和cookie?目前只返回一个令牌 .

1 回答

  • 2

    是 - 因为idsrv和您的应用之间没有维护身份验证会话 - 但是在idsrv和您的浏览器之间 .

    然后每个应用程序必须设置自己的会话 - MVC通过cookie执行此操作 . 在JS中通常使用类似会话存储的东西 .

    要完成您的方案:

    • 打开MVC应用程序

    • 使用idsrv进行身份验证 . idsrv设置身份验证cookie

    • 重定向回mvc

    • MVC设置自己的cookie以登录用户

    • 打开JS应用程序

    • 使用idsrv进行身份验证 . 这次已经有一个现有的登录会话 . 没有显示登录UI,令牌直接发送回JS

    • JS验证响应并记住本地存储中的用户

    每个客户端应用程序都需要以自己的方式登录用户(cookie与会话存储) . 单点登录是因为存在与idsrv的额外会话(由idsrv自己的cookie维护) .

相关问题