问题描述
我正在尝试了解this example project,它使用Google's OAuth library来让用户使用其Google帐户登录。
具体来说,我试图了解Oauth2AuthorizationCodeServlet.java和Oauth2CallbackServlet.java之间的关系。我知道Google的OAuth 2.0库使用它们来启动授权流程并在用户登录后处理结果,并且我已经阅读了两个抽象类的documentation,但我想知道为什么两者都类需要重复相同的逻辑吗?
- 两个类都定义了
getUserId()
函数,它们返回相同的值。 - 两个类都定义了
initializeFlow()
函数,它们返回相同的值。 - 两个类都定义了
getRedirectUri()
函数,它们返回相同的值。
代码工作正常,我可以看到函数按以下顺序调用:
-
Oauth2AuthorizationCodeServlet#getUserId()
-
Oauth2AuthorizationCodeServlet#initializeFlow()
-
Oauth2AuthorizationCodeServlet#getRedirectUri()
-
Oauth2CallbackServlet#initializeFlow()
-
Oauth2CallbackServlet#getRedirectUrl()
-
Oauth2CallbackServlet#getUserId()
-
Oauth2CallbackServlet#onSuccess()
但是我想知道为什么Oauth2CallbackServlet
中的重复功能是必需的。
为什么Google的OAuth 2.0库不能使用第一类返回的值?相应的函数返回不同的值是否有意义?例如,他们的getRedirectUrl()
函数返回不同的URL是否有意义?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)