我将devise_token_auth与 Rails 5 API 和使用redux-token-auth的单独 React/Redux 应用程序一起使用,试图允许用户通过 Twitter OAuth 登录(使用omniauth-twitter)。
我已devise_token_auth
安装/api/v1
如下:
1 │ Rails.application.routes.draw do
2 │ namespace :api do
3 │ scope :v1 do
4 │ mount_devise_token_auth_for 'User', at: 'auth', controllers: { omniauth_callbacks: 'omniauth_callbacks' }
5 │ end
6 │ end
7 │ end
这是现在发生的事情:
- 在 React 前端,用户单击链接以使用 Twitter 登录
/api/v1/auth/twitter
用户在同一窗口中被重定向到(在后端 Rails 应用程序中处理)- 用户被重定向到 twitter.com 以登录和授权应用程序
- 用户被重定向到回调 URL,
/api/v1/auth/twitter/callback
由 Rails 后端处理 - Oauth 成功,用户信息被添加到
users
表中 - 然后什么也没有发生。显示一个空白页面,其 URL 仍显示带有路径的后端 Rails 应用程序 URL
/api/v1/auth/twitter/callback
我需要用户返回 React 前端应用程序并使用刚刚创建的新用户的令牌进行身份验证。
我究竟做错了什么?我最初重定向到处理 oauth 流的后端 API 是错误的吗?我在 devise_token_auth 问题中看到了一些关于在新窗口中执行此操作的评论,但除了使用 jQuery 库jToker(我不想这样做)之外,我没有看到任何有关如何执行此操作的文档。
设置和配置redux-token-auth
以及devise_token_auth
使用时的正确方法是什么omniauth
?