我想在现有的asp.net应用程序上实现Google登录 . 我已经在我的localhost上测试了它并且运行良好,但是一旦我在 生产环境 服务器上部署它就没有 . 我注意到的一件事是不同的是屏幕上的Projet / Application名称“选择一个帐户” .
1-我可以在测试与 生产环境 服务器上使用相同的客户端ID吗?
2-如果google登录页面上的应用程序名称不同,是否表示我的Google组织中已有一个项目设置了身份验证API?我想只有组织的管理员才知道?
3-我该如何调试?
以下是我如何构建它的更多细节:
-
我正在使用Javascript调用Google登录
-
经过身份验证后,我将令牌发布到Aspx页面,该页面使用GoogleJsonWebSignature.ValidateAsync验证令牌的完整性 .
-
验证令牌后,我确认用户在我的数据库中以允许登录 .
** EDIT **
我发现我的 生产环境 服务器上有一个我在本地主机上没有的错误:
System.TypeInitializationException:'Google.Apis.Json.NewtonsoftJsonSerializer'的类型初始值设定项引发了异常 . ---> System.IO.FileLoadException:无法加载文件或程序集'Newtonsoft.Json,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (HRESULT异常:0x80131040)
1 回答
最后,我的问题与Google客户端ID设置无关,因此,为了回答我的问题,我可以在本地主机和 生产环境 服务器上使用相同的客户端ID .
错误是我的 生产环境 服务器上的web.config中缺少一些信息(因为该文件未与项目的其余部分一起发布) . 所以我在web.config中添加了这个以使它工作: