我正在用Rails 5 API和ExtJs构建应用程序。 我的ExtJs单页应用程序通过public/index.html加载。如何在通过Rails API与Oauth服务器进行身份验证后返回到我的Js应用程序?
我通过ExtJs应用程序中的按钮单击按钮,将其重定向到带有所需参数的Oauth登录页面。
然后Oauth服务器调用我的Rails应用程序并通过身份验证并获取令牌。
所有工作正常。 我的问题是,现在我有我的用户加载,更新,access_token准备好,但我需要在浏览器中加载单页面应用程序,并传递access_token。不知何故,我无法管理这一点。
def login
if params[:code]
response = request_token(params[:code])
if response.header.code == '200'
token_data = JSON.parse response.body
user_info = JWT.decode(token_data['id_token'],nil,false).first
@user = User.find_by email: user_info['email']
@user ? @user : @user = User.new
@user.name = "#{user_info['given_name']} #{user_info['family_name']}"
@user.access_token = token_data['access_token']
@user.access_token_created_at = Time.zone.now
@user.token_data = response.body
@user.save
render file: '/public/index.html'
else
redirect_to('/', status: response.header.code, alert: response.header.message)
end
elsif params[:error]
redirect_to('/', status: 401, alert: params[:error])
end
end
我要么会卡在与本地主机空的浏览器窗口:3000网址和代码PARAM或者如果我重定向我得到一个消息,你将被重定向重新加载窗口,但我认为参数不传递。