所以我有一个React应用程序,我想让用户为我的应用程序授予对他们日历的访问权限。我使用PKCE流的授权代码做到了这一点:
- 用户点击按钮
allow access to calendar
- 用户带参数进入
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
(包括传入PKCE的加密验证码) - 用户被重定向到Microsoft网站以授予
Calendars.ReadWrite
和offline_access
的权限 - 我的后端被微软网站从
Authorisation Code flow
触发code
- 我的后端触发
https://login.microsoftonline.com/common/oauth2/v2.0/token
获取access_token
和refresh_token
(使用PKCE的未加密验证令牌) - 后端将
refresh_token
存储在数据库中,并使用access_token
将事件添加到用户的日历中 - 如果我想在几天后将事件添加到用户的日历中,我使用
refresh_token
来获取新的access_token
,而不会再次通过Microsoft登录屏幕提示用户
我有三个问题:
1.这个流程对这样的应用程序实际上有意义吗?它做得正确吗?
1.在后端存储refresh_token
的最佳和最安全的方法是什么?
1.我用常规的HTTP请求来做这些事情。使用msal
React和JavaScript包来以某种方式使其更容易是否有意义?
1条答案
按热度按时间ct3nt3jp1#
1.是的,这是一个相当标准的方法。
1.这个问题太广泛,而且以意见为基础,无法准确回答。
1.是的,你应该使用MSAL。一般来说,尽可能避免重新实现安全协议,而是依赖于信誉良好的,积极支持的库。