我正试图围绕 oauth2 进行思考,所以我实际上知道我在做什么,但并非一切都清楚。
我知道在 OAuth2 中我们有各种可用的流程。很受欢迎的是(我认为):
- 授权码授予
- 隐式授权
- 密码授予
在我的 SPA 中,我使用https://auth.nuxtjs.org/来处理用户授权。在后端,有 Laravel Passport。这个 auth 模块为我们提供了对 OAuth 的内置支持,以及在它之上的一些额外的抽象层——比如 Laravel Passport。我知道这些提供者是某种方案的扩展,是为特定服务预先配置的。
我不确定本地方案(https://auth.nuxtjs.org/schemes/local)之间有什么区别,如下所示:
local: {
token: {
property: 'access_token',
type: 'Bearer'
},
user: {
property: 'user',
},
endpoints: {
login: {url: '/login', method: 'post'},
logout: {url: '/logout', method: 'post'},
user: {url: '/user', method: 'get'}
}
}
还有 Laravel Passport 提供程序(https://auth.nuxtjs.org/providers/laravel-passport),它的工作原理是这样的(这个我无法工作):
'laravelPassport': {
provider: 'laravel/passport',
endpoints: {
userInfo: {url: '/user', method: 'get'}
},
url: 'http://publisher-local.co.uk:8080/api/v1',
clientId: '*',
clientSecret: '****'
}
他们不是一回事吗?我的意思是 Passport 只是一个 Oauth 的东西,我在那里发送凭据,所以我假设它是我的第一个示例中的密码授予流程?
如果在基于 Oauth 方案的护照提供商中,我是否grantType:client_credentials
也会将其视为密码授予流程?
它变得更加令人困惑,因为当我尝试使用 Passport Provider 时,重定向的工作方式有所不同。
我不知道该选择什么以及如何理解整个过程。