我正在用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或者如果我重定向我得到一個消息,你將被重定向重新加載窗口,但我認爲參數不傳遞。