代码之家  ›  专栏  ›  技术社区  ›  Freid001

我的api应该如何处理通过auth0登录?

  •  0
  • Freid001  · 技术社区  · 8 年前

    我正在尝试学习如何利用auth0为我当前创建的api处理用户身份验证。

    我的api有两个端点:

    登录端点: /api/login

    请求访问令牌终结点: /api/auth?code={code}

    这里的身份验证流程是:

    1. 用户转到my api的登录端点。
    2. 用户被重定向到auth0 ui。
    3. 用户输入他们的登录凭证。
    4. /api/auth

    首先,我对Oauth身份验证流程的理解正确吗?如果是这样,我的api应该如何最好地处理初始登录重定向到auth0?

    从前端ui,它只返回auth0处登录页面的html。我应该返回一个带有重定向url的302,还是可以创建一个端点,用户在其中输入用户名&通过我的api输入密码并避免重定向?

    ---更新---

    用户通过auth0进行身份验证后,他们会收到一个access_令牌和id_令牌,我的api应该使用它来验证用户是他们所说的那个人吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   BRass    8 年前

    假设您正试图保护一个最终用户应用程序(您的问题并不清楚),我的理解是,如果您使用的是Auth0,您可能不需要 /api/login 和 api/auth 应用程序编程接口。如果您使用的是Auth0,则可以在通过Auth0进行身份验证的过程中获取这些信息。

    我想说,您的应用程序(而不是API)会将用户重定向到Auth0登录端点。你可以通过合并 Auth0 SDK of choice ,这取决于你在建什么。例如,如果你正在构建一个web应用程序,你可以选择合并 auth0.js webAuth.authorize()

    然后,您的用户在您登录的客户端处于一种状态,并且您拥有一个令牌。然后,您可以将该令牌提供给API,API可以根据需要验证该令牌。Auth0还有各种用于令牌验证的库(如下所示 spring security one (例如)。

    最后,使用哪种oAuth流的问题,也取决于您保护的应用程序类型。又来了 Auth0 docs Client Credentials 我上一次检查的flow只包含在Enterprise Auth0用户中。