{AuthorizationCodeServlet和AbstractAuthorizationCodeCallbackServlet之间是什么关系?

问题描述

我正在尝试了解this example project,它使用Google's OAuth library来让用户使用其Google帐户登录。

具体来说,我试图了解Oauth2AuthorizationCodeServlet.javaOauth2CallbackServlet.java之间的关系。我知道Google的OAuth 2.0库使用它们来启动授权流程并在用户登录后处理结果,并且我已经阅读了两个抽象类的documentation,但我想知道为什么两者都类需要重复相同的逻辑吗?

  • 两个类都定义了getUserId()函数,它们返回相同的值。
  • 两个类都定义了initializeFlow()函数,它们返回相同的值。
  • 两个类都定义了getRedirectUri()函数,它们返回相同的值。

代码工作正常,我可以看到函数按以下顺序调用:

  1. Oauth2AuthorizationCodeServlet#getUserId()
  2. Oauth2AuthorizationCodeServlet#initializeFlow()
  3. Oauth2AuthorizationCodeServlet#getRedirectUri()
  4. Oauth2CallbackServlet#initializeFlow()
  5. Oauth2CallbackServlet#getRedirectUrl()
  6. Oauth2CallbackServlet#getUserId()
  7. Oauth2CallbackServlet#onSuccess()

但是我想知道为什么Oauth2CallbackServlet中的重复功能是必需的。

为什么Google的OAuth 2.0库不能使用第一类返回的值?相应的函数返回不同的值是否有意义?例如,他们的getRedirectUrl()函数返回不同的URL是否有意义?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)