我有一个Spring Boot应用程序作为后端和Angular 6前端。它们分开工作非常好,我以this guide为起点。现在到了要使用外部OAuth验证用户身份以访问其某些WoW角色数据的地步。
对于如何使用OAuth限制对后端的访问,我有一个不错的主意,因为Spring Security使这很容易。我正在苦苦挣扎的是,如果我的用户已通过身份验证并获得访问角色A的授权,我该如何在前端和后端上处理此问题?
由于Angular正在处理HTML页面的路由,并且这些HTML页面称为我的后端,所以我不确定如何将授权扩展到Angular。我可以显示代码,但是我认为这更多是概念性问题,而不是代码问题。
答案 0 :(得分:2)
您需要给您的前端代码一些OAuth的爱。例如this是一个很好的库(我使用它),但是YMMW。
现在,答案很长:
OAuth规范定义了几种不同的“流程”,而客户端应用程序中常用的一种是隐式流程。这意味着,如果您想使用香草,请自己实施,您需要执行以下操作:
现在答案更长:
accessToken
或类似名称。 (不完全是,但请继续阅读。)accessToken
或有时为id_token
附加到标头上,或者是jwt,bearer(无论是什么,我们只是说令牌) 。通常,它类似于Authentication
标头,值为Bearer ${ token }
。
http://server/auth/your-app-name?clientId=your-client-id&redirectUrl=http://your-angular-page/where-you-wanna-land
。实际情况如何,取决于服务器与服务器,实施与实施之间的关系。
sessionStorage
,而是要检查URL。
因为该网址看起来像:http://your-angular-page/your-route?accessToken=<some_token>&...
和其他类似内容。现在,您阅读了accessToken并将其存储在本地,就可以了。