Je construis une application avec Rails 5 API et ExtJs. Mon application ExtJs une seule page chargée via le public/index.html.Comment revenir à mon application Js après l'authentification avec un serveur Oauth via l'API Rails?
Je suis redirigé vers la page de connexion Oauth avec les paramètres requis via un clic de bouton dans l'application ExtJs.
Ensuite, le serveur Oauth appelle mon application Rails et passe par l'authentification pour récupérer le jeton.
Tout fonctionne bien. Mon problème est que maintenant j'ai mon utilisateur chargé, mis à jour, access_token prêt mais j'ai besoin de charger l'application d'une seule page dans le navigateur et transmettre le access_token. D'une manière ou d'une autre, je ne peux pas gérer cela.
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
Je soit coincé dans une fenêtre de navigateur vide avec le localhost: 3000 URL et le code param ou si je réoriente je reçois un message avec Vous allez être redirigé qui recharge la fenêtre mais je pense que les paramètres ne sont pas transmis.