【问题标题】:When to get JWT token in ASP.NET Core SPA App何时在 ASP.NET Core SPA 应用程序中获取 JWT 令牌
【发布时间】:2018-10-22 07:29:38
【问题描述】:

我有一个带有 React 前端的 ASP.NET Core 应用程序,我正试图弄清楚何时以及如何获得 JWT token

我已经实现了必要的后端工作来生成和返回JWT,但我不确定用户身份验证后何时以及如何获取令牌。

我有一个使用社交登录的登录页面。一旦社交提供商对用户进行身份验证,调用就会返回到我的 Callback() 操作方法,该操作方法从社交网络接收 cookie,这是我工作以确保用户是注册用户的地方。

目前,此时,我销毁社交 cookie 并创建自己的 cookie,并重定向到主页,用户只需下载包含所有前端 React 内容的 JS 文件。

只是不确定如何在我的 Callback() 方法中返回 JWT token 时进行重定向。

【问题讨论】:

    标签: asp.net asp.net-core jwt


    【解决方案1】:

    一旦您的用户通过第三方社交网络进行身份验证,您应该会收到一个访问令牌。您的回调需要将该访问令牌传递给您的 api 以验证令牌、检查您的应用程序的授权并创建 JWT 令牌。因此,此身份验证方法应接收访问令牌并在您的登录和第一次调用 React 应用程序中的 api 之间返回 JWT 令牌。您的登录前端需要将 JWT 存储在您的 React 前端可以检索它的位置(本地存储、会话存储或 cookie)。如果您的登录和 React 应用不在同一个域中,那么您需要在请求中将其传递给 React 入口点。

    【讨论】:

    • 感谢您的回复。我明白其中的逻辑。我的问题,特别是关于将JWT 令牌发送到前端的问题。我的回调方法是一个常规的控制器操作,它对主页执行Redirect,即Home 控制器Index 用户下载前端JS 文件的操作。具体来说,如何在此重定向期间将JWT 令牌发送给用户?主页必须要求身份验证,理想情况下使用JWT 令牌,并在验证令牌良好后,呈现允许用户下载前端JS 文件的页面。我卡住的地方就是这个过渡。
    • 如果您在后端而不是前端进行重定向,服务器将发送 302,您需要在重定向 URL 中传递代码,前端需要拉从那里开始。 this.RedirectToAction("index", "home", new {code=jwtToken}
    • 您可以在后端生成令牌后生成return Ok(jwtToken),然后在 React 中读取它。或者您可以将其作为 url 中的参数传递。
    • @pawel 他的登录发生在传统的 mvc 页面中,然后通过 mvc 登录页面重定向到 React 的入口点,这将是 HTML 响应而不是 api 响应。
    猜你喜欢
    • 1970-01-01
    • 2019-12-15
    • 2018-06-16
    • 2021-12-24
    • 2023-03-23
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多