angularjs - 对于从 API 提取的 AngularJS 安全站点,我应该使用什么 oAuth2 Grant

标签 angularjs authentication laravel oauth-2.0 jwt

我正在寻找有关此项目最佳策略的建议。

我正在构建一个 SaaS 服务,客户(租户)可以使用 iPad 应用程序或服务网站访问该服务。服务网站将使用 AngularJS 和 laravel 编写。授权方式为oAuth 2。登录网站的用户将拥有不同的 Angular 色和不同的能力。将来我们可能会扩展服务和应用程序,全部使用相同的用户帐户。

我在为服务网站制定良好的身份验证和授权策略时遇到问题。由于该网站将运行 AngularJS 并将连接到我们自己的服务 API,因此我不确定为用户和 AngularJS 处理 AUTH 的最佳方法是什么。我知道 iPad 应用程序可能会使用“资源所有者授予”之类的东西,但是 AngularJS 网站和代码呢?它应该使用“隐式授权”、“JWT”还是其他什么?当用户登录时,是否应该给他们一个授权 AngularJS 网站上所有页面的 token ?如果是这样,我是否使用“授权代码授予”之类的东西并自动授权请求而不为用户做某种重定向?

我也在考虑拥有一个“login.php”页面来授权用户并提供 token 。它可以将用户配置文件嵌入“angularjs”页面,如果 AngularJS 页面没有嵌入的配置文件,它会重定向到登录。但是对于这个解决方案,我仍在尝试弄清楚如何最好地将 AngularJS 页面安全地连接到 API。

我很困惑,因为 AngularJS 网站或多或少是我们 API 的接口(interface)。但我认为用户不必通过“请求身份验证”过程,他们应该直接登录..

感谢任何建议或指导..-John

最佳答案

隐式授权类型被许多人(lucadegasperi 的 oauth2-server-laravel 等)视为 OAuth2 授权类型中最不安全的类型,因此我建议您改用 JWT 作为您的服务网站。

要将 JWT 与 Laravel 集成,请查看以下库。它工作得很好,并且还受到流行的开箱即用 API 包 Dingo for Laravel 的支持(https://github.com/dingo/api):

至于应用程序,如果该应用程序是第一方应用程序,请按照 Florens Morselli 所述进行 OAuth2 密码授予。如果是第三方应用,请改用授权码授予。

关于angularjs - 对于从 API 提取的 AngularJS 安全站点,我应该使用什么 oAuth2 Grant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25808734/

相关文章:

javascript - 在 javascript/Angular JS 中安装并打开 Android/ios native 应用程序

javascript - 从不同的模块和 Controller 获取 Angular 变量

php - HTTP 身份验证清除 SERVER 变量

mysql - Laravel深度优先树遍历

mysql - 关系数据库 : Variable Fields

javascript - ng-options 与 ng-init 无法正常工作

javascript - angularfire 无法读取属性 facebook - 我如何在整个应用程序中继续使用 authData

Python - 从当前浏览器操作和读取浏览器

c# - 可以登录本地组织

php - 在 Laravel 中对多个子记录使用 createOrUpdate