【发布时间】:2014-12-19 14:55:56
【问题描述】:
我希望获得一些关于如何使用带有 ember-simple-auth 的 ember 初始化程序将用户从 HTTP 重定向到 HTTPS 的建议。
`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`
但是,即使 if 语句的计算结果为 true,cookie 似乎也会失效。我尝试了几件事,包括:
- 之前:'simple-auth'
- 之前:“商店”
- application.destroy() 在 if 语句中,在 window.location.href 设置之前
据我所知,调试后。该应用程序确实重定向到 HTTPS,但是在 document.cookie 中找不到 cookieName。 (https://github.com/simplabs/ember-simple-auth/blob/master/packages/ember-simple-auth-cookie-store/lib/simple-auth-cookie-store/stores/cookie.js#L154)
在此方法起作用之前,因为我们在 index.html 中有简单的 sn-p,但是使用 CSP,我们希望将其保留在初始化程序中。有什么建议吗?
谢谢!
【问题讨论】:
-
为什么要在初始化程序中而不是从服务器中执行此操作?不知道您是否使用授权者,但如果您是服务器,则无论如何都不能响应任何非 HTTPS 请求。
-
所有资产都通过各种 AWS 服务(S3、Route53 等)在 CDN 中提供,因此我们没有真正可以使用的 nginx 或 apache 配置使用。
-
是的,UI 只与 API 通信,因此前端资产的托管只通过 CDN 提供服务。
-
您是否设置了带有安全标志的cookie?也许我不明白您所说的“cookie 失效”是什么意思,您能详细说明一下吗?
标签: ember.js ember-simple-auth