最近工做中须要使用到oauth,注意到oauth客户端的grant_type值能够指定为client_credentials和password两种,很好奇因此网上搜索了一下,发现stackoverflow上一个帖子:
https://stackoverflow.com/que...api
这位网友注意到一个有趣的点:服务器
grant_type=client_credentials时,请求的响应中不包含refresh_token:网站
而grant_type为password则包含refresh_token:spa
何时用client_credentials(客户端模式)做为grant_type?3d
下面这个网站有介绍:https://www.poken.com/api/aut...
例如Account creation这个API,从业务上说咱们指望它能够经过一个未认证过的用户调用,由于在Account建立以前,不存在authenticated user,这种场景下用grant_type=credentails比较合适。blog
grant_type=password的状况下,请求access token时,须要在HTTP请求里加上client_id和client_secret两个参数。token
客户端须要用户的用户名和密码,而后将客户端本身的client_id和client_secret发送给认证服务器,换取access token. 适用于受信客户端,好比一种服务对应的移动客户端。rem
帖子里举了一个例子,好比实现一个后台做业,调用API完成一些维护工做,这里面不涉及到采集终端用户的用户名和密码,因此用client_credentials比较合适,这种状况下拿Access Token只须要client_id和client_secret便可,不须要用user_id和password了。get
要获取更多Jerry的原创文章,请关注公众号"汪子熙":it