Google Auth Util允许Android开发人员验证其服务器收到的请求来自Android设备.
设备会根据与设备关联的Google帐户从Google获取令牌,然后设备的请求会随该令牌一起发送到服务器,然后服务器会询问Google是否有效.任何密钥都不在应用程序源之外,因此恶意人员无法破解应用程序并访问私钥和软件请求到服务器.
我已经看了一段时间,似乎Apple没有提供这样的东西,但我希望有一些功能相似的功能,我可以用于iOS.
我已成功自动完成将Google Big Query中的数据移至Google存储空间的流程.现在,我还需要以自动方式将数据从Google Storage下载到我的环境中.
我正在尝试执行正常的HTTP请求,但之前已授权.所以我的HTTP请求是
HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory(authorize());
GenericUrl url = new GenericUrl(uri);
HttpRequest request = requestFactory.buildGetRequest(url);
HttpResponse response = request.execute();
String content = response.parseAsString();
Run Code Online (Sandbox Code Playgroud)
我的授权码是
/** Authorizes the installed application to access user's protected data. */
private static Credential authorize() throws Exception
{
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
// load client secrets
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(BigQueryConsumer.class.getResourceAsStream("/secret.json")));
// This creates the credentials datastore at ~/.oauth-credentials/${credentialDatastore}
FileDataStoreFactory fileDataStoreFactory = new FileDataStoreFactory(new File(System.getProperty("user.home") + …Run Code Online (Sandbox Code Playgroud) java google-api google-authentication google-api-java-client google-cloud-storage
我在我的应用中通过Firebase使用Google登录.但是在Play商店中运行已发布的应用时,会显示以下错误.
E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
Run Code Online (Sandbox Code Playgroud)
尽管我已经在Firebase和API控制台上注册了JSON文件中提到的ID.以下是JSON文件代码
{
"project_info": {
"project_number": "311816357497",
"firebase_url": "https://mcqsce.firebaseio.com",
"project_id": "mcqsce",
"storage_bucket": "mcqsce.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:311816357497:android:494b736XXXX6010b",
"android_client_info": {
"package_name": "in.readhere.mcqceit"
}
},
"oauth_client": [
{
"client_id": "311816357497-9ma34c4qXXXXXXXXXXXXXoep8b24u8g.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "in.readhere.mcqceit",
"certificate_hash": "6847ce9f7e38dc588d12345678f21c13bd25ea7c"
}
},
{
"client_id": "311816357497-5lbqnmj0bxxxxxxxxxxxxxm4qjfhmq06.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6BGtRfxxxxxxxxxGrwwe_0V3uY9g-0dI"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": …Run Code Online (Sandbox Code Playgroud) android google-api google-authentication firebase firebase-authentication
我有一个Web应用程序,前端是Angular2,后端是NodeJS.我希望允许客户使用Google身份验证器使其帐户更安全.
如何在我的网站中实施/使用Google身份验证器?我找不到要使用的API或要跟随的教程或要使用的任何库.我在哪里可以找到一些资源来做到这一点?
javascript google-authentication node.js two-factor-authentication
我有一个ASP.NET Web API 2.0应用程序,我已连接到一个Ionic应用程序,它使用我的API进行登录,注册等.
我正在使用基于令牌的身份验证,以便当用户注册帐户并登录时,他们将被授予访问令牌,该令牌在每个后续请求的标头中传递并用于对用户进行身份验证.这很好.
现在,我希望允许用户通过登录Facebook或Google等社交帐户来注册帐户.
目前,我正在尝试集成Google身份验证,因此在我的Startup.Auth.cs文件中,我启用了它,如下所示:
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions
{
ClientId = "###",
ClientSecret = "###",
});
Run Code Online (Sandbox Code Playgroud)
我也有标准的AccountController方法,所以从我的Ionic应用程序,我能够向'RegisterExternal'方法发出GET请求,如下所示:
/api/Account/ExternalLogin?provider=Google&response_type=token&client_id=self&redirect_uri=###
Run Code Online (Sandbox Code Playgroud)
据我了解,此方法返回一个重定向URI,我应该导航到我的应用程序中以允许用户登录.我想我会在我的应用程序中打开一个新窗口以允许用户输入他们的详细信息?
但是,我不认为这是我想采取的方法.对于大多数应用程序,这些天我可以简单地按下"使用Google登录"按钮,它可以完成所有魔法,无需重定向或输入任何信息.
我正在看看Cordova GooglePlus插件,这似乎是我需要的,因为它允许用户登录客户端.成功回调还会返回以下内容:
obj.email // 'eddyverbruggen@gmail.com'
obj.userId // user id
obj.displayName // 'Eddy Verbruggen'
obj.familyName // 'Verbruggen'
obj.givenName // 'Eddy'
obj.imageUrl // 'http://link-to-my-profilepic.google.com'
obj.idToken // idToken that can be exchanged to verify user identity.
obj.serverAuthCode // Auth code that can be exchanged for an access token and refresh token for offline access
obj.accessToken // OAuth2 access token
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我是否可以使用此信息传递给我的ASP.NET服务的帐户服务来验证用户并为他们创建一个帐户(如果他们还没有)? …
asp.net google-authentication asp.net-web-api cordova ionic-framework
每当我跑步时
from firebase_admin import auth
auth.verify_id_token(firebase_auth_token)
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误:
Token used too early, 1650302066 < 1650302067. Check that your computer's clock is set correctly.
Run Code Online (Sandbox Code Playgroud)
我知道底层的 google auth API 确实会检查令牌的时间,但是如此处所述, 应该存在 10 秒的时钟偏差。显然,我的服务器时间晚了 1 秒,但是运行仍然失败,即使这远低于允许的 10 秒偏差。有没有办法来解决这个问题?
错误:\'idpiframe_initialization_failed\',详细信息:\'您已创建一个新的客户端应用程序,该应用程序使用\xe2\x80\xa6i/web/guides/gis-migration)以获取更多信息。\'}\n详细信息:“您已创建使用库进行用户身份验证或授权的新客户端应用程序将很快被弃用。新客户端必须改用新库;现有客户端也必须在这些库被弃用之前迁移。有关详细信息,请参阅迁移指南。 ”\n错误: “idpiframe_初始化失败”
authentication google-authentication google-api-js-client reactjs googleauthr
我正在将与 google Drive js api 交互的网络应用程序迁移到新的 Google Identity Services API,并遵循此快速入门指南。GIS 是强制性的,因为从 2023 年 3 月起旧的 GIS 将不再使用。
在本指南中,只有一个小注释提到在页面重新加载后保留登录状态:
注意:初始用户授权后,您可以使用immediate:true调用gapi.auth.authorize来获取身份验证令牌,而无需用户交互。
但是,没有明确的代码示例如何做到这一点,而且可以在迁移指南中找到,该示例gapi.auth2.authorize()已被弃用。
requestAccessToken()而不需要用户交互是不可行的,因为第一弹出窗口根本不显示(在所有主要浏览器中被阻止),第二如果允许弹出窗口会显示并立即隐藏(糟糕的用户界面)有人可以给我一个例子,其中通过 JS 使用 GSI 通过页面重新加载来保留会话吗?
谷歌身份服务似乎还没有准备好投入生产,还是我错了?
google-authentication oauth-2.0 google-drive-api google-identity
我正在尝试使用Oauth2来验证我的设备中登录的Google用户.我创建了客户端ID,但我无法获得预期的结果.
代码是:
String mScope="oauth2:server:client_id:NNNNNNNNNNN.apps.googleusercontent.com:api_scope:https://www.googleapis.com/auth/plus.login";
protected Void doInBackground(String... accountName) {
Log.i("Inside on AsynTask:","I am here");
String accName=accountName[0];
try {
token1 = GoogleAuthUtil.getToken(Web_view_demo.this,
accName,
mScope);
Log.i("Inside on AsynTask:","I am here");
} catch (IOException transientEx) {
// Network or server error, try later
Log.e("IO", transientEx.toString());
} catch (UserRecoverableAuthException e) {
// Recover (with e.getIntent())
Log.e("UserRecover", e.toString());
//Intent recover = e.getIntent();
//startActivityForResult(recover, 1);
} catch (GoogleAuthException authEx) {
// The call is not ever expected to succeed
// assuming you have already verified that …Run Code Online (Sandbox Code Playgroud) GoogleAuthUtil.getToken要求它的第二个参数是帐户对象,但是当您使用Google SignIn连接时,结果中的结果是GoogleSignInAccount - 这不是一回事.有没有办法将GoogleSignInAccount转换为Account对象?
private void handleSignInResult(GoogleSignInResult result) {
if (result.isSuccess()) {
googleSignInAccount = result.getSignInAccount();
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
authToken = GoogleAuthUtil.getToken(context, [need an account here], scope);
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过显示accountpicker来获取电子邮件地址,我也可以从google登录结果中获取电子邮件地址 - 但我看不到获取整个帐户对象的方法.
android google-authentication google-signin googlesigninaccount oauth2
android ×4
firebase ×2
google-api ×2
asp.net ×1
cocoa-touch ×1
cordova ×1
googleauthr ×1
ios ×1
java ×1
javascript ×1
node.js ×1
oauth ×1
oauth-2.0 ×1
oauth2 ×1
python ×1
reactjs ×1