Rails:使用敲门对 JWT 令牌进行身份验证
Posted
技术标签:
【中文标题】Rails:使用敲门对 JWT 令牌进行身份验证【英文标题】:Rails: authenticate with JWT Token using knock 【发布时间】:2020-03-25 01:26:37 【问题描述】:我正在尝试为我的应用构建身份验证解决方案。我使用 React 作为前端,使用 API 模式下的 Rails 作为后端。我有一个需要使用的外部身份验证解决方案。我偶然发现了 Knock for JWT 令牌管理,但我不理解文档,尤其是这部分“它必须有一个身份验证方法,类似于 has_secure_password 添加的方法。”,因为由于我的外部身份验证服务,我没有用户模型。 所以在我的脑海里,一个登录请求会发送到我的 LoginController,它将管理外部身份验证,并且在成功身份验证后,会以某种方式创建一个 JWT 令牌并将其返回到前端。 知道我是如何实现这一目标的吗?
【问题讨论】:
您没有用户模型?那你为什么需要认证服务呢? 有很多理由让服务经过身份验证,但没有用户模型。但这不是这里讨论的问题:) 【参考方案1】:如果您使用的是外部身份验证解决方案,那么您没有登录控制器,您也不需要拥有。如果您有外部服务进行身份验证,那么很可能是 OpenID 或 OAuth2。
这里是a good explanation of the authentication flow。
您的应用程序中可能想要和需要的是一个before_action
,它可以验证 Bearer 令牌是否有效。
【讨论】:
以上是关于Rails:使用敲门对 JWT 令牌进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
使用 Rails 和 React 时如何在标头中获取 JWT 令牌
如何使用 JWT for Google firebase 生成身份验证令牌?
JWT 身份验证:使用 UI 令牌对 Graphene/Django (GraphQL) 查询进行身份验证?