0
  1. 我去我的应用程序并检查是否有 JWT cookie
  2. 如果它在那里,我会解析它并开始验证用户是否可以访问我的应用程序
  3. 如果不存在,我将重定向用户以在 FusionAuth 中进行身份验证
  4. 成功登录后,用户将被重定向回我的应用程序

如何在我的应用程序的步骤 3 中指定 fusionauth id?

以及如何指定我想在成功登录后重定向到我的应用程序?

我假设 fusionauth 正在 fusionauth.mydomain.com 上运行,myapp.mydomain.com 上的应用程序和 JWT cookie 将在 mydomain.com 中发布,因此两者都可见。

4

2 回答 2

0

这似乎是一个标准的 OAuth 授权代码授予工作流程。我们有这个工作流程和许多其他记录在这里:

https://fusionauth.io/articles/logins/types-of-logins-authentication-workflows

我的猜测是,您的特定工作流程可能是使用 JWT 和刷新令牌的单页应用程序的授权代码授予,此处记录:

https://fusionauth.io/articles/logins/spa/oauth-authorization-code-grant-jwts-refresh-tokens-cookies

/oauth2/authorize它的工作方式是通过将浏览器重定向到 FusionAuth 的端点来从应用程序启动 OAuth 工作流。您将需要提供此信息来启动 OAuth 工作流程:

  • client_id- 这可以在 FusionAuth 的应用程序配置下找到
  • response_type- 对于授权码授予,这将是code
  • redirect_uri- 这是您希望用户在使用 FusionAuth 登录后返回的位置。您必须在应用程序的 OAuth 配置选项卡下的 FusionAuth 中配置此 URI。

如果您运行的是 FusionAuth 1.6.0 或更高版本,您还可以单击应用程序的“查看”图标,它将显示一个包含 OAuth URL 的弹出对话框。您仍然需要指定redirect_uri尽管如此。这是授权端点的文档页面:

https://fusionauth.io/docs/v1/tech/oauth/endpoints#authorize

一旦你有了这个工作,你将需要为你的redirect_uri. 该控制器将从codeFusionAuth 生成的 URL 中获取并调用/oauth2/token端点。此过程将用授权代码交换访问令牌,这是一个 JWT。

端点的文档/oauth2/otken位于那里:

https://fusionauth.io/docs/v1/tech/oauth/endpoints#token

这将帮助您实现控制器。

于 2019-06-06T15:23:17.463 回答
0

是的,这是可能的。

在第 3 步中,您会将浏览器重定向到 FusionAuth 登录页面。导航到Settings --> ApplicationsFusionAuth UI 并单击有问题的应用程序的绿色视图按钮。

这将打开一个显示集成信息的对话框(如果您使用的是最新版本的 FusionAuth)。

你会看到一个类似这样的链接:

OAuth IdP login URL: https://fusionauth.mydomain.com/oauth2/authorize?client_id=ee31103f-2fc1-4bb5-ba95-ac543693503e&response_type=code&redirect_uri={your URI here}

client_id例中的参数将向 FusionAuth 标识您的应用程序。

以及如何指定我想在成功登录后重定向到我的应用程序?

这在 FusionAuth 中配置为授权重定向,然后在重定向到 FusionAuth 登录时指定相同的 URL。请注意redirect_uri上面示例 URL 中的参数。这里有这个配置的截图:https ://fusionauth.io/docs/v1/tech/oauth/overview

我假设 fusionauth 正在 fusionauth.mydomain.com 上运行,myapp.mydomain.com 上的应用程序和 JWT cookie 将在 mydomain.com 中发布,因此两者都可见。

FusionAuth 目前不删除跨域 cookie。如果您在fusionauth.mydomain.comCookie 上运行 FusionAuth,它将具有相同的域并且对myapp.mydomain.com.

如果您想利用 FusionAuth,那么您不需要检查 cookie myapp.mydomain.com,如果用户未登录,您只需重定向用户,然后如果用户已经在 FusionAuth 上进行了 SSO 会话,他们将被无缝重定向回来到您的应用程序。

您可以查看我们的登录工作流程,以确定最适合您要求的工作流程,然后遵循推荐的工作流程。https://fusionauth.io/articles/logins/types-of-logins-authentication-workflows

于 2019-06-06T15:30:44.107 回答