clean up implementation of non frame login / registration

This commit is contained in:
Sam 2015-10-13 14:49:09 +11:00
parent fab51496cb
commit b6c2aa13e6
3 changed files with 17 additions and 9 deletions

View File

@ -33,6 +33,7 @@ class Users::OmniauthCallbacksController < ApplicationController
auth[:session] = session
authenticator = self.class.find_authenticator(params[:provider])
provider = Discourse.auth_providers && Discourse.auth_providers.find{|p| p.name == params[:provider]}
@auth_result = authenticator.after_authenticate(auth)
@ -54,9 +55,15 @@ class Users::OmniauthCallbacksController < ApplicationController
else
@auth_result.authenticator_name = authenticator.name
complete_response_data
respond_to do |format|
format.html
format.json { render json: @auth_result.to_client_hash }
if provider && provider.full_screen_login
flash[:authentication_data] = @auth_result.to_client_hash.to_json
redirect_to @origin
else
respond_to do |format|
format.html
format.json { render json: @auth_result.to_client_hash }
end
end
end
end

View File

@ -53,6 +53,11 @@
<%- end %>
Discourse.S3BaseUrl = '<%= Discourse.store.absolute_base_url %>';
<%- end %>
<%- if !current_user && flash[:authentication_data] %>
Em.run.next(function(){
Discourse.authenticationComplete(<%=flash[:authentication_data].html_safe%>);
});
<%- end %>
</script>
<%= script 'browser-update' %>

View File

@ -22,12 +22,8 @@
<p><%=t "login.close_window" %></p>
<script type="text/javascript">
if(window.opener) {
window.opener.Discourse.authenticationComplete(<%=@auth_result.to_client_hash.to_json.html_safe%>);
window.close();
} else {
window.location = <%= @origin.inspect.html_safe %>;
}
window.opener.Discourse.authenticationComplete(<%=@auth_result.to_client_hash.to_json.html_safe%>);
window.close();
</script>
</div>
</body>