我在这个项目中尝试实现了Google OAuth2认证,后端服务器运行Django和DRF,使用rest API登录,使用dj_rest_auth
库。
它的工作原理大致如下:
- front-end generates auth url like
https://accounts.google.com/o/oauth2/auth/i...
1.用户验证
1.前端接收access_token
access_token
正在发送到{{API_URL}}auth/google/
的API
1.后端使用此令牌获取配置文件信息并保存用户
我需要注册SocialApp
与谷歌提供商,但它看起来像是只用于配置文件获取.事实上,我只是使用client_id="xxx"
和没有client_secret
.
我希望access_token
可以使用client_id
和client_secret
进行验证,但显然它可以在没有它们的情况下工作。
安全吗?
1条答案
按热度按时间yqkkidmi1#
一旦你有了一个
access token
,你就不需要再传递你的client_id
和client_secret
了。无论是JWT
还是reference
类型的令牌,identity server
都会通过解析JWT
或匹配与注册客户端Map的reference token
来验证你的客户端。当您在HTTP头中请求
identity provider
访问令牌时,需要传入这些值,如下所示。请查看RFC 6749中的客户端密码部分和RFC 2617中的基本身份验证方案,了解有关构建
Basic
值的更多详细信息。我希望access_token以某种方式使用client_id和client_secret进行验证,但显然它没有它们也能工作。这安全吗?
是的,因为
identity provider
可以完全信任the access token
所代表的客户端。