我想要做的是創(chuàng)建一個(gè)具有 Angular 前端和帶有 OAuth2 身份驗(yàn)證的 Spring Boot 后端的應(yīng)用程序。問(wèn)題是我不知道如何進(jìn)入 ROLES 用戶擁有的前端,以便我能夠,例如,在頁(yè)面上顯示基于角色的內(nèi)容。是的,OAuth 在響應(yīng)中提供了一些范圍,但問(wèn)題是這些范圍是針對(duì) CLIENT 而不是針對(duì)特定 USER 本身的。那個(gè) CLIENT 是我的前端(如果我錯(cuò)了請(qǐng)糾正我)這基本上意味著每個(gè)操作我的應(yīng)用程序(客戶端)的用戶都將具有相同的范圍(角色)。此外,我可以在和的幫助下在后端指定角色,然后將這些角色與等一起使用。但在前端則不行。SpringUserDetailsService@PreAuthorize舉個(gè)例子,如果我只使用單個(gè) JWT,然后使用令牌本身,我會(huì)將用戶名和角色都返回給前端。然后我可以存儲(chǔ)這些數(shù)據(jù)并根據(jù)我的需要在前端使用它。所以我要問(wèn)的是,這是否真的可能,這樣做是否正確?我怎么可能實(shí)施這種行為?
2 回答

慕哥9229398
TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
OAuth 不能解決這個(gè)問(wèn)題,最好通過(guò) API 中的聲明來(lái)解決。OAuth 應(yīng)該只處理身份驗(yàn)證。
簡(jiǎn)而言之,您必須在 OAuth 處理完成后查找用戶權(quán)限,例如角色。

largeQ
TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
實(shí)現(xiàn)這一點(diǎn)的最簡(jiǎn)單和最好的方法可能是使用 OpenID Connect 服務(wù)器,它將提供所有用戶管理內(nèi)容。市場(chǎng)上有很多解決方案。Auth0 和 Okta 是 Identity Clouds,它們以少量資金提供服務(wù)。
添加回答
舉報(bào)
0/150
提交
取消