如何在使用Rails API进行Steam OpenID验证后返回React应用程序,包括响应数据



我使用的是Rails6和React。在我的平台上注册的第一步是通过Steam登录。我做到了这一点,但现在当我将用户重定向到localhost:3000/auth/steam(omniauth-steam-gem提供的路由(时,它会创建一个新用户,但我不知道如何将其重定向回React,并使用该新创建用户的数据。

在React中,我只有一个简单的功能,当用户点击Sign in with Steam按钮时,它会重定向用户:

const _steamLogin = () => {
window.location.replace(`${backend_url}/auth/steam`)
}

这是Rails中的控制器,在用户成功登录Steam帐户后处理回调:

class SteamController < ApplicationController
skip_before_action :verify_authenticity_token, only: :auth_callback
def auth_callback
# Get Steam user data
auth = request.env['omniauth.auth']
# Create new Application
application = Application.new(steam_uid: auth['uid'], birthday_date: DateTime.now.to_date)
if application.save
render json: application, status: 201
else
render json: application.errors.full_messages, status: 400
end
end
end

为了在不深入应用程序逻辑的情况下更好地理解它,ApplicationUser模型。

最后,问题是如何在auth_callback成功完成或出现错误后重定向回React,以便显示成功消息或错误消息。

我对Rails没有任何了解,但我认为用简单的方法来做这件事,你可以使用一个变量,设置和取消设置这个变量,并在看到这个变量有真实状态后替换url,你有更多的方法在登录后将页面重定向到你的网站;

loggedin>log=真未登录>log=错误

最新更新