设计令牌身份验证 - 不将令牌返回给客户端

Posted

技术标签:

【中文标题】设计令牌身份验证 - 不将令牌返回给客户端【英文标题】:Devise Token Auth - Not returning tokens to client 【发布时间】:2021-05-18 23:36:21 【问题描述】:

设置 devise_token_auth。

继续解决源代码中的问题。

例如:

def token_validation_response
  as_json(except: %i[tokens created_at updated_at])
end

将从以下位置调用:

SessionsController::create > render_create_success > token_validation_response

据我了解,您需要将令牌获取到客户端并将其存储在客户端并随每个请求一起发送。 如果我们不将令牌提供给客户端和 except 它,我不确定这应该如何工作。

except: %i[tokens created_at updated_at]

来源链接: https://github.com/lynndylanhurley/devise_token_auth/blob/c92258038c05fcc8f6a0374ccce2e63b9f8d5312/app/controllers/devise_token_auth/sessions_controller.rb#L36

https://github.com/lynndylanhurley/devise_token_auth/blob/c92258038c05fcc8f6a0374ccce2e63b9f8d5312/app/models/devise_token_auth/concerns/user.rb#L205

【问题讨论】:

【参考方案1】:

也许这对某人有用。令牌出现在标题而不是正文中。

更新:

我还需要解决客户端 cors 问题。

一些有帮助的选项:

Vue Axios CORS policy: No 'Access-Control-Allow-Origin'

https://blog.bitsrc.io/how-and-why-you-should-avoid-cors-in-single-page-apps-db25452ad2f8

最简单的解决方案是在命令行中执行 chrome:

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security

来源:https://alfilatov.com/posts/run-chrome-without-cors/

【讨论】:

以上是关于设计令牌身份验证 - 不将令牌返回给客户端的主要内容,如果未能解决你的问题,请参考以下文章

摘要身份验证生成“令牌”

设计 API 身份验证 [关闭]

WCF如何传递令牌进行身份验证?

将 Windows 用户“令牌”传递给 WCF 进行身份验证

如何使用被盗令牌防止 Rest Web 服务身份验证

.Net Core 中的两因素身份验证 - 如何验证令牌