我不太清楚如何处理oauth2隐式流量响应。我使用angular4创建了一个SPA。到目前为止我能够得到我需要创建一个请求:
GET /authorize?
response_type=token&
client_id=s6BhdRkqt3&
state=xyz&
redirect_uri=<<uri-located-into-SPA>>
我不太了解的是如何处理响应。响应是重定向到先前指定的redirect_uri
查询参数。
HTTP/1.1 302 Found
Location: <<uri-located-into-SPA>>#access_token=2YotnFZFEjr1zCsicMWpAA&
state=xyz&
token_type=example&
expires_in=3600
那么,我应该如何实施<<uri-located-into-SPA>>
以提取access_token
以及&lt;&gt;我需要设置吗?
答案 0 :(得分:1)
重定向URI(例如/auth/oauth2
)应该映射到当前浏览器URL parse the hash part的组件,在某处保存access_token
值(sessionStorage,localStorage或某些角度服务或商店)。如果您想要发送访问令牌以及每个后端请求,请创建一个HttpInterceptor(来自新的Angular HttpClient API),将其添加到那里。
如果要在访问令牌过期之前刷新,则还应设置刷新访问令牌的超时功能(使用隐藏的iframe
和prompt=none
URL参数)。
该组件不需要任何真实视图。处理完成后,只需将路由更改为某个现有应用程序组件 - 初始视图或在身份验证之前请求的视图。