升级到 Rails 6.1.6.1 时,我开始在应用程序中收到以下错误:
Psych::DisallowedClass:
Tried to load unspecified class: Symbol
Run Code Online (Sandbox Code Playgroud)
Hash这是由于在 ActiveRecord 列上使用序列化程序造成的,该序列化程序使用符号作为键或值:
serialize :parameters, Hash
Run Code Online (Sandbox Code Playgroud) 我目前正在为Rails实现一个JSON API,以便为Android移动应用提供服务,这需要进行Google身份验证.
我希望的流程是Google API OAuth2的一次性代码流(混合身份验证),如omniauth-google-oauth gem中所述.简而言之,Android应用从Google帐户的服务器获取一次性代码并将其交给Rails API操作,该操作将其转换为访问令牌,然后使用它来获取用户的个人资料信息.
考虑到这一点,我有两个关于Rails中的Devise omniauth实现的问题:
我发现在omniauth-google-oauth gem的文档中已经描述了Javascript的一次性代码客户端流程实现.但是,Devise通过将用户重定向到新的注册页面来处理授权失败,并且回调阶段需要一组我没有文档的参数.Devise是否支持JSON API的此类流程?如果是这样,应该如何处理?
我注意到有一种触发器可以启动omniauth的回调阶段,如下所示.问题是,当我将omniauth的path_prefix更改为/ users/auth /的其他内容时,当我对回调URL发出POST请求时,不会触发此操作.Devise/Omniauth使用什么标准来触发此触发器?
INFO - omniauth :( google_oauth2)已启动回调阶段.
作为参考,我使用Rails 4.1.6与Ruby 2.1.3和Devise 3.2.4.
我非常感谢你的帮助!
我刚刚在 Rails 5.2 应用程序上安装了 webpacker,在尝试运行时bin/webpack-dev-server出现以下错误:
? ?wds?: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
- configuration.entry should be one of these:
function | object { <key>: non-empty string | [non-empty string] } | non-empty string | [non-empty string]
-> The entry point(s) of the compilation.
Details:
* configuration.entry should be an instance of function
-> A Function returning an entry object, an entry string, an entry array …Run Code Online (Sandbox Code Playgroud) ruby-on-rails webpack-dev-server webpacker ruby-on-rails-5.2