gpt4 book ai didi

java - Vertx 中的多重 OAuth 身份验证

转载 作者:行者123 更新时间:2023-12-01 09:25:11 27 4
gpt4 key购买 nike

我有以下代码:

    Class<OAuthHandler> _tempClass = (Class<OAuthHandler>) Class.forName(providerClass);
Constructor<OAuthHandler> oAuthHandlerConstructor = _tempClass.getDeclaredConstructor(Vertx.class);
OAuthHandler oAuthHandler = oAuthHandlerConstructor.newInstance(vertx);
OAuth2Auth oAuth2Auth = oAuthHandler.getoAuth2Auth();
/* AccessToken accessToken = */ oAuth2Auth.getToken(oAuthHandler.getTokenConfig(code), accessTokenResponse -> {
if (accessTokenResponse.failed()) {
System.out.println("Failed to obtain token");
} else {
AccessToken accessToken = accessTokenResponse.result();
// Return the token? Somehow.
}
});

oAuthHandler 是一个特定于提供者的实现,根据提供者名称提供一些配置等,并且简单地包装 vertx-auth-oauth2 提供的方法。图书馆。

我想在访问 token 返回后使用它,但不在 getToken Lambda 内部使用,这样我就可以获得有关我需要的用户的任何信息。

我已经看到了一些关于 Vert.x Futures 的内容,但不确定我是否可以在这里使用它们,任何解决方案的建议或示例将不胜感激!

最佳答案

Vert.x OAuth2 支持不是特定于供应商的。根据文档http://vertx.io/docs/vertx-web/java/#_oauth2authhandler_handler您将看到相同的代码可以处理以下提供程序:

  • 谷歌
  • 推特
  • Github
  • 领英
  • Facebook
  • key 斗篷

一旦 3.4 发布,一些小修复也将使其兼容:

  • Azure AD

此外,该处理程序是通用的,因此如果您有自己的提供程序,也可以使用它。

现在关于如何直接使用 token 的问题的第二部分,那么您可能不需要 OAuth2Handler 因为它向您隐藏了所有这些并且您想与 交互直接 OAuth2 客户端:

http://vertx.io/docs/vertx-auth-oauth2/java/#_getting_started

上面的文档中有一个入门代码示例,它允许您在不使用反射的情况下与获取 token 进行交互。这要好得多,因为如果内部 api 发生变化,您不会受到伤害。

关于java - Vertx 中的多重 OAuth 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890196/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com