饭否oauth记录

诗文 诗文     2022-09-23     521

关键词:

饭否Oauth授权
 
首先去饭否申请一个应用,创建新应用即可,等待审核。审核通过了之后会拿到consumer_key和consumer_secret。这两个值先记录在代码里。后面经常用到。
然后第一步是用consumer_key,去换取request_token和request_token_secret。
其中有两个东西需要我们生成的,一个是时间戳timestamp,一个是随机字符串nonce
百度就可以找到生成方式。
值得注意的是时间戳需要截取前十位,也就是到秒为止。随机字符串就随便用用随机数即可。
 
这里需要重点注意的是签名和转码
获取request_token的方式是发出GET请求到指定的url。后面带的参数就按正常的GET请求的写法,即
url?key1=value1&key2=value2。。。
注意的是其中有一个签名的参数,是把base string按照HMAC-SHA1的方式加密得到的字符串。而base string是按照如下规则拼成的:
本次请求方式(GET或者POST,必须大写)+"&"+本次请求的url进行encode转码之后的结果+"&"+参数列表进行encode转码之后的结果
其中的参数列表就是上面我们要发GET请求的那些参数,也是按照key1=value1&key2=value2格式写的,不过必须按照参数名称进行排序。
第一步的参数值和参数名一般没有符号需要转码,但是中间的&和=转码之后会替换成%3D和%26。
以上内容拼起来之后的base string,按照HMAC-SHA1方式加密之后的结果也要进行转码,因为加密之后的结果的结尾一定会有一个“=”,中间也可能出现/+等符号,也要进行转码再放进get请求的url中。
HMAC-SHA1方式加密算法中需要有一个key,这个key在饭否API文档那边也没告诉我们,第一步需要用我们手里的consumer_secret末尾加一个“&”符号,作为key。
 
第一步到这里基本上就没问题了。
 
请求成功之后会返回一个oauth_token=(一大串字符)&oauth_token_secret=(一大串字符)
如果请求失败了会返回报错401,那就要检查一下签名是不是正确了,可能哪里有一点点错,就会401,这里是卡的最久的一步了。
 
第二步:
 
这个时候你要让你的应用打开这个网址:
http://fanfou.com/oauth/authorize?oauth_token=request_token&oauth_callback=callback_url
其中request_token就是上面刚刚得到的token,callback_url,是一个属于你的url,这个url最好具备处理get请求的能力。
这个网址打开其实是一个饭否授权的界面,相信大家都看过的,如果浏览器已经登陆了饭否用户,那么就会只有一个“授权”按钮。用户点了之后,你的应用就得到了这个用户的授权,并且界面会跳转到你的callback_url上,并且在你的url后面加了?request_token=(一大串字符)
这个写法很明显,相当于对你的callback_url发送了get请求,如果你的url有处理get请求的能力,那相当于得到了一个参数,参数名是request_token,参数值你的应用需要用在下一步的请求中。
 
第三步:
 
上面的request_token得到之后,需要再发送一次请求。
跟第一步的基本相同,只是增加了一个oauth_token的参数,就是刚才得到的request_token。别忘了加进参数列表参与签名。
其他参数与第一步相同。
另外这一次的签名时候的key,前半部分不变,还是consumer_secret加一个“&”符号,后面再加上刚才第一步获得到的那个secret。
 
这次请求成功之后,得到的一对token和secret,就是这个用户对这个应用授权的access_token和access_token_secret,以后这个应用就可以使用它们,进行饭否API的调用。

json饭否每日精选,例子-1.每日(代码片段)

查看详情

pcs配置oauth记录

1.先生成一个客户端的私钥keytool-genkeypair-keystoremykeystore.jks-aliasmyPcsClient-storepasswelcome1-keypasswelcome1-keyalgRSA-sigalgSHA1WithRSA-dname"CN=myPcsClient"2.list一下确保没问题keytool-list-keystoremykeystore. 查看详情

json饭否每日精选,例子-2.每条精选(代码片段)

查看详情

即使 OAuth2 验证失败,如何记录 http 请求/响应正文?

】即使OAuth2验证失败,如何记录http请求/响应正文?【英文标题】:Howtologhttprequest/responsebodyevenifOAuth2validationfailed?【发布时间】:2021-01-1213:34:04【问题描述】:我需要将SpringBootMVC应用程序的每个request和response正文索引(记录)... 查看详情

webapi使用记录系列oauth授权与身份校验(代码片段)

...模式、密码模式、客户端模式和简化模式,这里我们文章记录的是密码模式和客户端模式。  目录  引用安装  授权处理-发放Token    用户名密码授权    客户端授权  身份校验-校验失败自定义返回信息  Te... 查看详情

java老矣,尚能饭否?

22岁,对于一个技术人来说可谓正当壮年。但对于一门编程语言来说,情况可能又有不同。各类编程语言横空出世,纷战不休,然而TIOBE的语言排行榜上,Java却露出了明显的颓势。这个老牌的语言,未来会是怎样?写在前面从1995... 查看详情

记录 Spring Security OAuth2 身份验证失败的推荐方法是啥?

】记录SpringSecurityOAuth2身份验证失败的推荐方法是啥?【英文标题】:WhatistherecommendedapproachforloggingSpringSecurityOAuth2authenticationfailures?记录SpringSecurityOAuth2身份验证失败的推荐方法是什么?【发布时间】:2020-12-0316:12:00【问题描述... 查看详情

我和时间的温柔相处---廉颇老矣,尚能饭否?

 话不多说,贴几张图,一年以后的总结    一年以前部分技能展示。650)this.width=650;"src="http://s4.51cto.com/wyfs02/M00/83/C5/wKiom1d7mejwi4AQAADGhZMXE5o981.jpg"style="float:none;"title="psb.jpg"alt="wKiom1 查看详情

微信oauth登录,回调两次,一个坑,记录一下。

在做微信某个功能的时候,大致需求是:静默授权,得到openId,然后拿着openId调用接口,判断是否关注。如果是关注的,则发放礼券。每个我网站的会员只会发放一次礼券。如果第二次则会提示已领取过礼券。坑的表现为:我不... 查看详情

Expo Electron OAuth2 登录

...构建一个应用程序,包括桌面-使用Electron。现在我在继续记录过程直到结束时遇到问题。我知道Electron使用ExpoReactNativeWebFeatures,但我不明白如何在重定向后继续记录过程。这是我尝试过的:constus 查看详情

moodle之oauth认证配置与实现

...th2配置结论Moodle自身提供了CAS和OAuth2两种认证插件。本文记录了我在Moodle中配置与实现OAuth2的过程与步骤,供小伙伴们参考。如果错 查看详情

OAuth 重定向后会话丢失

...。我有这个错误好几个月了。我尝试了很多东西来调试和记录,但我仍然没有解决问题。尽管大多数请求都很好,但我需要解决一小部分。场景是这样的:用户点击登录按钮我从服务 查看详情

it人老矣,尚能饭否?

今年刚好40岁,在一家著名外企做到技术专家的位置,在亲戚朋友眼中,俨然已算半个“成功人士”,但内心深处,却无一刻不战战兢兢。   我知道,自己就像一个风雨中的高跷人,哪怕一阵风,一个闪失,都会重重... 查看详情

Discord OAuth2 冻结

...cordOAuth页面,但是当我单击“授权”时,它会在控制台上记录我的discordID,但不会重定向(应该重定向到/auth/suc 查看详情

wpf老矣,尚能饭否

作为一个老牌WPF程序员,多年来一直关注的问题是,在微软发布最新的WinRT框架之后,接下来的客户端编程将何去何从。显然我有充分的理由担心这个,众所周知的Silverlight的中途搁浅,它对下游的开发人员带来了很大的损害;... 查看详情

discord Oauth2 访问令牌未定义

...,它将我重定向到主页,但URL有token=undefined。控制台确实记录“它有效!”。如何修复未定义的访问 查看详情

微信公众平台oauth2.0网页授权

...(openid,姓名,性别,地区,头像等)。如大转盘等游戏记录哪个微信用户获得什么奖品、H5等小游戏需要把分数与对应用户捆绑在一起等网页应用。微信公众平台oauth2.0网页授权能干什么它是在自己做的网站中不用用户登录来... 查看详情

google搜索老矣,尚能饭否?

【CSDN编者按】在2021年全球搜索引擎市场占有率排行榜中,谷歌占比高达91.4%,位居第一。庞大的用户量加持下,谷歌搜索的受欢迎度无疑是肯定的,但是近年来当很多人使用谷歌搜索时,会发现映入眼帘的都... 查看详情