laravel OAuth 2 身份验证中 grant_type 参数的用途是什么

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/45055277/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 16:17:14  来源:igfitidea点击:

What is the purpose of grant_type parameter in OAuth 2 Authentication

laraveloauth-2.0lumen

提问by Hariharan

I am using OAuth 2 Authentication in Lumen microframework. Right now i am using the grant_typevalue is password. It throws unsupported_grant_type, If i am using something different. I want to know the purpose of using grant_typeis password

我在 Lumen 微框架中使用 OAuth 2 身份验证。现在我使用的grant_type值为password. unsupported_grant_type如果我使用不同的东西,它会抛出。我想知道使用的目的grant_typepassword

回答by Ján Hala?a

The grant_typeURL parameter is required by OAuth2 RFCfor the /tokenendpoint, which exchanges a grant for real tokens. So the OAuth2 server knows what you are sending to it. You are using the Resource Owner Password Credentials Grant, so you must specify it with the value password.

grant_typeURL参数所要求的OAuth2 RFC/token终点,这对交换令牌真正的授权。所以 OAuth2 服务器知道你向它发送了什么。您正在使用Resource Owner Password Credentials Grant,因此您必须使用值指定它password

From the OAuth2 RFC:

来自 OAuth2 RFC:

An authorization grant is a credential representing the resource owner's authorization (to access its protected resources) used by the client to obtain an access token.

授权许可是一种凭证,表示客户端用于获取访问令牌的资源所有者授权(访问其受保护的资源)。

The grant_type=passwordmeans that you are sending a username and a password to the /tokenendpoint. If you used the Authorization Code Grantflow, you could use the value authorization_code. But then you don't send the username+password pair, but a code received from the OAuth2 server after user authentication. The code is an arbitrary string - not human readable. It's nicely shown in the workflow diagrams in the RFC.

grant_type=password意味着您正在向/token端点发送用户名和密码。如果您使用了授权代码授予流程,则可以使用值authorization_code。但是随后您不会发送用户名+密码对,而是在用户身份验证后从 OAuth2 服务器接收到的代码。代码是一个任意字符串 - 不是人类可读的。它很好地显示在 RFC 的工作流图中。