我正在尝试构建基于RESTful API的应用程序,并且我想提供一种用于身份验证JWT和0auth的方法(用于用户访问的JWT和用于应用访问的0auth)。
总之,我想做:
User Access (Web App, Mobile App - JWT)
------------------------> /
-----------------------> /api/login
-----------------------> /api/logout
Client's app (API KEY - 0auth)
------------------------> /services/getInfo
/services/getProducts
用户可以使用网络应用程序,并希望将其应用程序的某些功能与我的服务集成,如Facebook,Github等。
我不确定这种方法,因为这是我第一次设计一个大型应用程序
问题如下:
答案 0 :(得分:0)
Oauth 2.0是一种授权协议,不应用于身份验证。考虑为您的方案使用Openid Connect。它在oauth之上工作,因此流程与一些即兴创作相同。
在这种情况下,您可以注册您的应用程序,以便为最终用户和应用程序内的呼叫使用相同的协议。
请探索应用访问的客户端凭据流以及Web App的隐式/混合流。
Openid connect使用jwt令牌进行身份验证和授权。
身份服务器3是Openid connect的认证实现。他们的文档很好,他们有一个积极的支持论坛来帮助您查询。
请参阅:
https://www.safaribooksonline.com/library/view/identity-and-data/9781491937006/ch04.html
https://leastprivilege.com/2016/01/17/which-openid-connectoauth-2-o-flow-is-the-right-one/