我为Google登录设置了设计+ omniauth。它在网络上运行良好。我现在正在考虑将oauth登录集成到iOS / Android客户端。
我一直关注https://developers.google.com/identity/sign-in/ios/backend-auth,发现我用于oauth的库做了这些事情(https://github.com/zquestz/omniauth-google-oauth2/blob/master/lib/omniauth/strategies/google_oauth2.rb)。
我不清楚的是,如果我可以在常规网络工作流程之外使用omniauth策略(即从rails console
)来构建伪request.env["omniauth.auth"]
。有可能吗?根据文档https://developers.google.com/identity/sign-in/ios/backend-auth#using-a-google-api-client-library我想在Ruby中做相同的操作(并且我不清楚我是否可以直接使用Devise来完成此操作)。
答案 0 :(得分:-1)
在控制台中模拟请求非常简单。您可以轻松地向控制台提供的app
变量发出请求:
app.get('/') # => 200
app.response # => #<ActionDispatch::TestResponse:0x007fc73e4db220>
对于处理身份验证,标准rails应用程序在Web上使用基于cookie /会话的身份验证策略。在您第一次进行身份验证后,一些信息会存储在会话中(通常作为cookie),您和服务器将在每次请求时来回传递。
由于移动客户端不依赖cookie,我们需要不同的身份验证策略:token-based authentication。
这是一个适用于Omniauth的高级实现:
要处理移动请求,您需要注意遵循提供商Omniauth gem的细则。
Token身份验证曾经被编入Devise,但它被删除了。值得庆幸的是,有一些宝石将令牌身份验证添加到Devise: