Ich hoffte, einige Empfehlungen zu erhalten, wie man die Umleitung von Benutzern von HTTP zu HTTPS mit einem Ember-Initialisierer mit ember-simple-auth nähern kann.Umleiten von HTTP zu HTTPS w/Einfache Auth
`import ENV from 'cio/config/environment'`
SSLInitializer =
name: 'ssl'
before: 'simple-auth-cookie-store'
initialize: (container, application) ->
application.deferReadiness()
# Redirect if hitting HTTP and SSL is enabled
if ENV.SSL and window.location.protocol is "http:"
window.location.href = "https:" + window.location.href.substring(window.location.protocol.length)
return false
application.advanceReadiness()
`export default SSLInitializer`
Aber es scheint, dass der Cookie ungültig wird, selbst wenn die if-Anweisung als wahr ausgewertet wird. Ich habe einige Dinge ausprobiert, darunter:
- vor: 'simple-Auth'
- vor: 'Store'
- application.destroy() innerhalb der if-Anweisung vor der window.location.href ist gesetzt
Von was ich sagen kann, nach dem Debuggen. Die App leitet zwar zu HTTPS um, aber der Cookie-Name wurde in document.cookie nicht gefunden. (https://github.com/simplabs/ember-simple-auth/blob/master/packages/ember-simple-auth-cookie-store/lib/simple-auth-cookie-store/stores/cookie.js#L154)
Bevor diese Methode funktionierte, weil wir ein einfaches Snippet in der index.html hatten, aber mit CSP wollten wir es in einem Initialisierer behalten. Irgendwelche Empfehlungen?
Danke!
Warum möchten Sie dies in einem Initialisierer und nicht vom Server tun? Ich weiß nicht, ob Sie einen Authorizer verwenden, aber wenn Sie der Server ist, muss er auf keine Nicht-HTTPS-Anfragen reagieren. – marcoow
Alle Assets werden in einem CDN mit einer Vielzahl von AWS-Diensten (S3, Route53, etc ...) bereitgestellt, so dass wir nicht wirklich eine Nginx- oder Apache-Konfiguration verwenden können, die wir verwenden können. – alvincrespo
Ja, die Benutzeroberfläche kommuniziert nur mit einer API, so dass das Hosting von Frontend-Assets nur über ein CDN bedient wird. – alvincrespo