【发布时间】:2016-10-22 20:28:33
【问题描述】:
我正在开发一个应用程序,它有一个使用 Play Framework Scala 的服务器端和一个客户端 AngularJS。
我只想在服务器端管理身份验证,因为我必须保护 API 和应用程序本身的安全,并且我希望将会话“集中”在我的服务器上。
但由于我没有使用 Play Framework 视图模板(以保持客户端和服务器端的独立性),因此我无法像示例中那样将用户配置文件信息传递到客户端。
我试图在我的 Angular 模板上列出我的缓存和我的 Cookie 键,但我似乎在那里找不到任何东西。
有什么方法可以使用 Angular 获取会话信息?会话由 Play Framework 请求和管理? (我在文档的任何地方都找不到它)
这是我如何呈现我的 Angular 客户端首页(Play 框架仅执行 API 路由和此首页路由)
def frontPage() = AuthenticatedAction {
request =>
val idToken = request.session.get("idToken").get
val profile = cache.get[JsValue](idToken + "profile").get
Ok.sendFile(content = new File("./public/layout.html"), inline = true).as("text/html")
}
这是在文档示例中的完成方式:
def index = AuthenticatedAction { request =>
val idToken = request.session.get("idToken").get
val profile = Cache.getAs[JsValue](idToken + "profile").get
Ok(views.html.user(profile))
}
我需要将该“配置文件”传递给我的模板,但我不想拥有 scala html 模板:我想继续使用纯 Angular 模板来保持我的客户端/服务器端的独立性(仅通过API)
编辑 21/06/2016:我没有找到直接从 Angular 获取会话信息的方法,但我能够通过扩展我的 API 来返回它,我更喜欢这个解决方案!见https://stackoverflow.com/a/37942787/4884034
【问题讨论】:
标签: angularjs scala playframework auth0