Javascript 如何使用谷歌登录?

Javascript 如何使用谷歌登录?,javascript,node.js,oauth-2.0,google-oauth,axios,Javascript,Node.js,Oauth 2.0,Google Oauth,Axios,我正在尝试实现google oauth 2.0登录,而不使用Node.js应用程序中的任何库 我在谷歌API控制台上创建了一个应用程序,重定向url为http://localhost:3000. 在登录期间,我的响应类型是返回一次性使用代码的代码,该代码需要与令牌\端点交换,如所述。 使用以下代码段在my node.js服务器上完成交换 axios{ 网址:'https://www.googleapis.com/oauth2/v4/token', 方法:“post”, 数据:{ 代码:代码,

我正在尝试实现google oauth 2.0登录,而不使用Node.js应用程序中的任何库

我在谷歌API控制台上创建了一个应用程序,重定向url为http://localhost:3000. 在登录期间,我的响应类型是返回一次性使用代码的代码,该代码需要与令牌\端点交换,如所述。 使用以下代码段在my node.js服务器上完成交换

axios{ 网址:'https://www.googleapis.com/oauth2/v4/token', 方法:“post”, 数据:{ 代码:代码, 客户端id:sso.clientId, 客户端密码:sso.clientSecret, 重定向\u uri:sso.redirect\u uri, 授权类型:“授权码”, } } .thenresponse=>{ console.logresponse.data; } 凯瑟先生{ console.logerr.response.data; }; 在通过axios进行交换呼叫时,您需要使用params代替数据,修改后的块如下

params: {
    code: code,
    client_id: sso.clientId,
    client_secret: sso.clientSecret,
    redirect_uri: sso.redirect_uri,
    grant_type: 'authorization_code',
}

希望这有帮助

不要在GET参数中包含clientSecret之类的内容。这可能导致严重的安全问题

谷歌文档非常清楚如何发送数据

作为邮政机构-一如既往: -步骤5,REST代码示例

它们必须以字符串的形式发送,但在帖子正文/数据中:

字符串是URL编码的参数,如

code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&
client_id=your_client_id&
client_secret=your_client_secret&
redirect_uri=https://yourOauth2redirectUrl.example.com/code&
grant_type=authorization_code

您能否确认POST请求中的其他字段(如客户端id、客户端机密、重定向uri)是否正确?是的。当我登录获取代码时,同样的信条也在起作用。这起作用了!!谢谢。谷歌文档说“请求必须在帖子正文中包含以下参数:”,因此我正在使用数据。即使我的代码在服务器上运行而不是在浏览器中运行,这也是一个问题吗?这取决于你的服务器。TLS SSL是唯一的安全层。每当SSL出现问题时(例如,您忘记续订证书),您就会遇到问题。OAuth安全性有三个重要方面:•严格遵守规范•正确使用TLS•使用状态参数-顺便说一句:我编写了Indiauth节点,将于周末在这里发布:-它还包含OAuth1和OAuth2模块,与google完美配合使用。。。请随时在这里询问更多问题。。。