我正在编写一个RESTful Web服务,其方法必须仅对经过身份验证的用户执行其任务。在使用其方法之前,Web服务的用户必须首先通过Google身份提供商在Web服务上创建一个帐户(注册/注册),并且他们必须使用Google登录才能访问Web服务提供的功能。
以下是一个示例场景:X是Google的注册用户,网络服务并不了解X,之前从未收到过他的回复。 X希望在网络服务上注册,通过Google验证自己。
所以,就像X对网络服务说的那样,嘿,我是X,Google可以证明我是X,这是Google提供的令牌以及其他一些信息Google已经了解我并且我懒得重新输入(姓名,电子邮件等)。
当Web服务收到来自X的令牌和信息时,Web服务如何确定X确实是X?是否应该与Google联系,向其传递从X收到的令牌?
通过关注Instructions for the OAuth2 V1 Command-Line Sample我设法让演示应用程序生成一个序列化对象,保存在.store/oauth2_sample/StoredCredential
中,以及一个包含access_type,audience,email,expires_in,issued_to,scope等属性的标记, user_id,verified_email。
我不清楚客户在注册阶段和使用阶段必须向服务传递哪些信息,服务在注册用户期间应该存储哪些信息,以便以后能够对其进行身份验证以及如何这样做。
这个令牌在哪里/什么?是.store/oauth2_sample/StoredCredential
中的整个序列化对象还是该对象的单个属性?
X如何将令牌传递给Web服务? Web服务公开的每个方法是否都必须有一个专用于接收此身份验证令牌的附加参数?