SSO使用AngularJS,获取用户详细信息

时间:2016-04-13 11:39:21

标签: javascript angularjs authentication cookies single-sign-on

考虑这种情况:

我点击了基于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。

1 个答案:

答案 0 :(得分:1)

这在很大程度上取决于您用于SSO的技术。 OAuth有一种机制,通过该机制,密钥可以返回到原始页面,该原始页面可用于访问身份验证服务以检索用户信息。

基于对环境的了解有限,最普遍接受的解决方案是使用angular-cookies.js模块并使用$cookies直接访问cookie。我假设cookie不包含任何用户信息,因为这些通常只是会话标识符,但您可以使用cookie会话标识符向SSO服务器发出请求并请求用户信息。

请注意,SSO服务器需要生成域通用的cookie,这意味着它们不指定子域。