前段时间我Oauth2 client id在Google API控制台中为Android应用程序创建了一个示例项目(让我们称之为"示例项目").我还添加了SHA1 fingerprint包名(例如com.package.name).
我的错误是已经存在具有相同包名的应用程序.现在我需要Oauth2 client id在包含名称的"有效项目"中创建一个for android应用程序,我之前添加com.package.name了SHA1 fingerprint它.显然,当我尝试添加此指纹时,我收到了一个错误.
The signing fingerprint you specified is already used by another Android OAuth2 client.
Run Code Online (Sandbox Code Playgroud)
之后我记得"示例项目"并client id从该项目中删除.问题是我仍然无法为包名添加此指纹com.package.name.Client id被删除,但我仍然有与上面相同的错误.
那么我是否有可能在另一个项目中将此指纹用于相同的包名称?
我一直在研究如何使用Cloud Endpoints验证您的客户端(Android,iOS,web-app),而无需用户按照文档显示的方式使用他们的Google帐户登录.
这样做的原因是我想要保护我的API或"将其锁定"仅限于我指定的客户端.有时我会有一个没有用户登录的应用程序.我讨厌纠缠我的用户现在登录,因此我的API是安全的.或者其他时候,我只想在网站上管理自己的用户,而不是使用Google+,Facebook或其他任何登录身份验证.
首先,让我首先展示您使用Cloud Endpoints API使用文档中指定的Google帐户登录信息验证Android应用的方式.在那之后,我将向您展示我的发现以及我需要帮助的解决方案的潜在领域.
(1)指定授权向API后端发出请求的应用程序的客户端ID(clientIds),以及(2)将User参数添加到要通过授权保护的所有公开方法.
public class Constants {
public static final String WEB_CLIENT_ID = "1-web-apps.apps.googleusercontent.com";
public static final String ANDROID_CLIENT_ID = "2-android-apps.googleusercontent.com";
public static final String IOS_CLIENT_ID = "3-ios-apps.googleusercontent.com";
public static final String ANDROID_AUDIENCE = WEB_CLIENT_ID;
public static final String EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email";
}
import com.google.api.server.spi.auth.common.User; //import for the User object
@Api(name = "myApi", version = "v1",
namespace = @ApiNamespace(ownerDomain = "${endpointOwnerDomain}",
ownerName = "${endpointOwnerDomain}",
packagePath="${endpointPackagePath}"),
scopes = {Constants.EMAIL_SCOPE},
clientIds = …Run Code Online (Sandbox Code Playgroud) authentication google-app-engine android google-cloud-endpoints google-oauth
我试图通过简单的服务帐户登录来使用C#,Google API和Google Analytics(分析)来打败自己.我的公司已经将数据导入到Analytics中,我可以使用他们的查询资源管理器查询信息,但是.Net的入门不会随处可见.我正在使用谷歌生成的带有PKI的json文件,因为文档说这样的服务帐户是与Googla API进行计算机到计算机通信的正确方法.代码snipet:
public static GoogleCredential _cred;
public static string _exePath;
static void Main(string[] args) {
_exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase).Replace(@"file:\", "");
var t = Task.Run(() => Run());
t.Wait();
}
private static async Task Run() {
try {
// Get active credential
using (var stream = new FileStream(_exePath + "\\Default-GASvcAcct-508d097b0bff.json", FileMode.Open, FileAccess.Read)) {
_cred = GoogleCredential.FromStream(stream);
}
if (_cred.IsCreateScopedRequired) {
_cred.CreateScoped(new string[] { AnalyticsService.Scope.Analytics });
}
// Create the service
AnalyticsService service = new AnalyticsService(
new BaseClientService.Initializer() {
HttpClientInitializer = _cred, …Run Code Online (Sandbox Code Playgroud) c# google-analytics-api google-oauth google-api-dotnet-client service-accounts
在尝试向Google进行身份验证时,我们正面临以下屏幕.我们尝试进行身份验证的应用程序用于内部开发,我们没有将其发布给用户.
知道为什么会这样吗?
我们之前遇到了未验证的应用程序屏幕(如下所示),但现在身份验证已禁用.
StackOverflow 上有很多关于此问题的帖子,但没有一个为 Web 应用程序提供解决方法,以便在嵌入式浏览器(如 iOS 上的 Facebook/Facebook Messenger)中通过 Google Web Auth 登录服务;但我发现 Pinterest 的网络登录与 Google 按钮似乎可以正常工作,所以我想知道是否有人知道如何让它工作。
几年前,Google 禁止从 webview 登录 Google , Auth0 也发表了一篇有关解决方法的博客文章,但这一切似乎都集中在本机应用程序上,而不是提供 Google 作为登录选项的 Web 应用程序。
但我公司的应用程序是一个网络应用程序,我们希望当有人在 Facebook Messenger/Facebook 帖子上分享我们网站的链接时,用户可以使用 Google 登录,即使他们没有弹出本机 Safari 浏览器。根据上述文档,这似乎是不可能的 - 但实际上我发现 Pinterest 的“使用 Google 登录”按钮确实有效!所以看来有一种方法可以让 Google 登录正常工作(不确定他们是否与 Google 达成了特殊协议,或者他们是否正在做我们/Auth0 也可以做的事情)。
重现步骤:
https://community.auth0.com为了证明似乎确实有一种方法可以在野外完成此操作:
这是一个与python Google AppEngine应用程序和Google的BigQuery之间的服务器到服务器授权有关的问题,但可能与其他云服务相关.
tldr; 是否可以让App Engine本地开发服务器使用远程BigQuery服务进行身份验证?更好的是有一个本地BigQuery?
我知道AppAssertionCredentials目前不能在本地开发服务器上运行,尽管这本身就非常令人沮丧.
它适用于标准的Python代码,在本地开发服务器沙箱之外的另一种方法,详细介绍在这里,因为即使PyCrypto启用了沙盒不允许一些POSIX模块如"PWD"不为本地开发服务器工作.
我有AppAssertionCredentials远程服务器,并在上工作SignedJwtAssertionCredentials方法了本机Python工作本地,因此服务帐户设置正确.
导入在try/except块中的oauth2client/crypt.py内失败 - 在将它们注释掉后,很容易看到沙箱白名单异常.
我已经摆弄了添加'pwd'到白名单,然后又出现了另一个问题,所以我匆匆走回那个兔子洞.
我已经尝试将PyCrypto直接包含在项目中并得到类似的结果.
我也试过OpenSSL,结果相似.
我找了一个当地的appengine特定的PyCrypto无济于事,我错过了吗?我应该说这是在Mac OSX上 - 也许我应该启动一个Linux机箱然后放手一搏?
google-app-engine google-bigquery google-oauth google-api-python-client
我正在尝试使用Google作为外部登录提供程序来解决间歇性问题.
尝试登录时,会将用户重定向回登录页面,而不是进行身份验证.
问题出现在这一行(下面的链接第55行),GetExternalIdentityAsync返回null.
var externalIdentity = await AuthenticationManager.GetExternalIdentityAsync(DefaultAuthenticationTypes.ExternalCookie);
Run Code Online (Sandbox Code Playgroud)
完整的代码是:
[Authorize]
public abstract class GoogleAccountController<TUser> : Controller where TUser : Microsoft.AspNet.Identity.IUser
{
public IAuthenticationManager AuthenticationManager
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
public abstract UserManager<TUser> UserManager { get; set; }
[AllowAnonymous]
[HttpGet]
[Route("login")]
public ActionResult Login(string returnUrl)
{
ViewData.Model = new LoginModel()
{
Message = TempData["message"] as string,
Providers = HttpContext.GetOwinContext().Authentication.GetExternalAuthenticationTypes(),
ReturnUrl = returnUrl
};
return View();
}
[AllowAnonymous]
[HttpPost]
[ValidateAntiForgeryToken]
[Route("login")]
public ActionResult Login(string provider, string returnUrl)
{
return new …Run Code Online (Sandbox Code Playgroud) 我正在尝试localhost:8080使用Social Auth for Java 在我的计算机(at )上运行的玩具应用程序中使用Google OAuth 2身份验证.
但是,当我的应用连接到Google以对用户进行身份验证时,Google会回复此错误页面:

我的应用程序名为"我的爱好应用程序",在开发者控制台中配置如下:

在Google OAuth 2文档中,指定了:
redirect_uri:开发人员控制台中为此项目列出的redirect_uri值之一.
确定响应的发送位置.此参数的值必须与Google Developers Console中为此项目列出的值之一完全匹配(包括http或https方案,大小写和尾随'/').
我有一些问题:
redirect_uri在我的应用中添加多个?google-api socialauth url-redirection google-oauth social-authentication
使用Google提供的快速入门示例,我已经能够登录Web应用程序以在Chrome和Firefox中使用.但是它在Internet Explorer(版本11)上失败.它会将用户登录到Google,但从data-onsuccess不会调用回调.通常没有任何错误通知.
我已阅读相关问题,并尝试了可信站点周围的建议.我还尝试调整IE何时接受第三方cookie,但这似乎都不起作用.
我正在使用的测试页面的代码如下(减去客户端ID)
<html>
<head>
<meta charset="ISO-8859-1">
<title>Google Sign In</title>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<meta name="google-signin-client_id" content="CLIENT_ID_FROM_GOOGLE_HERE">
<script>
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
console.log('ID: ' + profile.getId());
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail());
}
function signOut() {
console.log(document);
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
});
}
</script>
</head>
<body>
<h1>Login</h1>
<p>
This is a simple page to test Google Sign …Run Code Online (Sandbox Code Playgroud) iframe internet-explorer google-openid google-oauth google-signin
我创建了新的Google Play游戏,并希望更改Google Consent Screen上显示的电子邮件.Google Developers Console 屏幕上有一个下拉列表可供选择电子邮件,但只有一个 - 管理员的电子邮件 - 就在这里.我添加了另一个用户作为所有者,但它没有出现在同意屏幕上.
oauth google-api google-oauth google-oauth2 google-developers-console
google-oauth ×10
google-api ×4
android ×2
c# ×2
google-plus ×1
iframe ×1
oauth ×1
oauth-2.0 ×1
oauth2client ×1
socialauth ×1
webview ×1