考虑这种情况:
我点击了基于AngularJS的UI网址,该网址在新的浏览器窗口中受到SSO保护,例如。 https://somedev.domain.com
这会向上面的网址发出GET请求。现在,浏览器提示我输入用于身份验证的用户名和密码,因为从https://somedev.domain.com
重定向到https://sso.domain.com
我输入详细信息,成功时https://sso.domain.com
通过在浏览器上设置cookie来响应,并在响应标头中发回登录用户的用户详细信息,如Username,并加载UI页面。
AngularJS中是否有拦截此响应并获取登录用户的详细信息?
PS。我可以使用$ cookie访问set cookie。
答案 0 :(得分:1)
这在很大程度上取决于您用于SSO的技术。 OAuth有一种机制,通过该机制,密钥可以返回到原始页面,该原始页面可用于访问身份验证服务以检索用户信息。
基于对环境的了解有限,最普遍接受的解决方案是使用angular-cookies.js
模块并使用$cookies
直接访问cookie。我假设cookie不包含任何用户信息,因为这些通常只是会话标识符,但您可以使用cookie会话标识符向SSO服务器发出请求并请求用户信息。
请注意,SSO服务器需要生成域通用的cookie,这意味着它们不指定子域。