【问题标题】:Oauth authentication with laravel passport for mobile app使用 laravel 护照进行移动应用程序的 Oauth 身份验证
【发布时间】:2023-04-04 03:41:01
【问题描述】:
我正在使用 laravel 护照从移动应用程序进行授权。
但我不确定将client credentials 放置在哪里,即client_id/client_secret 和redirect_uri。
- 是否将其放置在移动应用程序端,并且他们会在进行身份验证以获取令牌时将这些信息传递给 API,或者出于安全目的将这些详细信息保存在服务器端的某些环境变量中?
- 每个用户是否拥有不同的 client_id 和 secret,或者整个应用程序中的所有用户都相同。
【问题讨论】:
标签:
oauth
authorization
microservices
access-token
laravel-passport
【解决方案1】:
客户端凭据授予类型适用于您希望应用程序在没有用户的情况下联系服务器的情况。例如,天气应用程序将联系服务器以获取最新的天气数据。它不需要用户登录来执行此操作。您想要客户端凭据,因为您不希望每个人都使用您的 api。这是一种保护您的 api 并只允许您批准的应用访问 api 信息的方法。
是的,您会将 client_id/client_secret 从您的移动/桌面应用程序传递到您服务器上的 /oauth/token url,因此它会返回一个访问令牌供您在通过 api 获取所有信息时使用。
client_id 和客户端密码不需要用户。它适用于客户端(移动/桌面应用程序)。但是对于每个用户来说都是一样的,因为他们都将使用相同的移动/桌面应用程序。