我成功地用在浏览器的谷歌API课堂代行谁授予的权限使用谷歌客户端库通过的OAuth2这样做的用户。我试图找出如何信任发送到从浏览器我的服务器API的结果。这里有一个故事来解释我到底到终端的问题,我试图解决的问题。
{
"iss": "accounts.google.com",
"azp": "redacted-string",
"aud": "redacted-string",
"sub": "redacted-string",
"hd": "redacted-string",
"email": "redacted-string",
"email_verified": true,
"at_hash": "redacted-string",
"name": "redacted-string",
"picture": "redacted-string",
"given_name": "redacted-string",
"family_name": "redacted-string",
"locale": "en",
"iat": redacted-number,
"exp": redacted-number,
"jti": "redacted-string"
}
{
"courses": [
{
"id": "redacted-number",
"name": "redacted-string",
"ownerId": "redacted-number",
"creationTime": "2019-01-09T19:04:28.084Z",
"updateTime": "2019-01-09T19:04:56.828Z",
"enrollmentCode": "redacted-string",
"courseState": "DECLINED",
"alternateLink": "https://classroom.google.com/c/redacted-string",
"teacherGroupEmail": "redacted-string",
"courseGroupEmail": "redacted-string",
"teacherFolder": {
"id": "redacted-string"
},
"guardiansEnabled": false
},
{
"id": "redacted-number",
"name": "redacted-string",
"ownerId": "redacted-number",
"creationTime": "2019-01-09T19:03:06.321Z",
"updateTime": "2019-01-09T19:03:05.328Z",
"enrollmentCode": "redacted-string",
"courseState": "PROVISIONED",
"alternateLink": "https://classroom.google.com/c/redacted-string",
"teacherGroupEmail": "redacted-string",
"courseGroupEmail": "redacted-string",
"teacherFolder": {
"id": "redacted-string"
},
"guardiansEnabled": false
}
]
}
也许我过思考它,我不应该担心传播假谷歌对象数据到我的数据库用户?我还以为物体以某种方式,我的服务器可能能够验证给我的应用程序凭据谷歌对象的真实性,并代理用户的验证谷歌签署了签入的对象。我认为这个过程将类似于谷歌登录如何让我来验证我的服务器端登录的真实性。
如果有这样做一条明路,我没有看到它。谁能帮我把东西放到重点是什么?
P. S.这是一个后续行动this question它从来没有得到一个像样的回答,很遗憾。
有没有办法防范的有效用户发布虚假数据从用户的客户端浏览器服务器。
一种选择是更新应用程序,使服务器端的访问谷歌的API。
对于如何做到这一点文档在这里:https://developers.google.com/identity/sign-in/android/offline-access
如果你从客户端请求访问的访问令牌还可以执行以下的要求模式:
1)客户端让你的应用程序服务器上的以下HTTP请求的API端点
GET /api/list_courses HTTP/1.1
Host: yourapp.example.com
Content-length: 0
Authorization: Bearer googles_api_access_token_here
2)/ API / list_courses你的应用服务器端点作出以下要求网上搜寻API服务器:
GET /v1/courses HTTP/1.1
Host: classroom.googleapis.com
Content-length: 0
Authorization: Bearer googles_api_access_token_here
3)从(2)被发送回应用程序服务器的响应
4)你的应用程序服务器的课程给客户名单响应。
这个问题可能不会在所有问题,因为你写的:
我不知道是如何信任他们发送的谷歌课堂对象我实际上是从谷歌来了。
假设API
沟通,他们甚至不发送它,但你通过SSL
或TLS
(主机的证书也可能是validated,虽然这不是必需的,因为当它不匹配A
的DNS
记录,它是无效的)获取它。用户也可以被验证的ID标记;看到documentation。