自从在Google上启用双因素身份验证(也称为两步验证)后,我的Google导出脚本就不再有效了.计算机已经过验证和信任,但不知何故,脚本不是.实际上,每次运行cron作业时,我都会收到一个新的"Google验证码"并且脚本失败.我认为用wget或者一劳永逸地验证这些脚本应该是一件简单的事情curl,但我找不到任何关于如何做的文档.
Google身份验证方案经历了多次迭代,我似乎无法再使用curl或登录mechanicalsoup.我尝试使用类似的URL https://accounts.google.com/ServiceLogin?continue=https://calendar.google.com/calendar/exporticalzip&Email=username@gmail.com&Passwd=application-specific-password,并且我总是被重定向到登录页面,通常会显示消息"请使用您的帐户密码而不是应用程序专用密码".
我使用https://github.com/chregu/GoogleAuthenticator.php为我正在处理的Web应用程序构建了双因素身份验证.一切都有效,甚至代码都有效.现在我在不同的服务器中设置相同的代码并生成新的密钥并将其添加到谷歌身份验证器移动应用程序现在移动中生成的代码不匹配.
我通过比较两个服务器上的结果并注意到time()函数返回不同的时间(1小时差异),然后我强迫我的第二个服务器(谷歌代码没有工作)与第一个相同的时间,它工作.所以我真的很困惑这是某种时区问题吗?因为我真的需要这些服务器拥有自己的时区.
有什么工作吗?
我还跟着https://support.google.com/accounts/answer/185834?hl=en并同步了我的google身份验证器应用仍然无法正常工作.移动应用程序中生成的代码在一小时后在我的第二台服务器上运行.任何人都可以帮助我或建议我一个不同的方法.
这是我用来连接上面的库的代码
class googleAuthLibrary extends GoogleAuthenticator
{
public function getSecretKey()
{
$secretKey = $this->generateSecret();
return $secretKey;
}
public function getQRLink($username, $hostname, $secretKey)
{
$url = 'https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl=';
$qrCode = 'otpauth://totp/'.$username.'@'.$hostname.'?secret='.$secretKey;
$url = $url.$qrCode;
return $url;
}
public function getAuthCode($secretKey)
{
$authCode =$this->getCode($secretKey);
return $authCode;
}
}
Run Code Online (Sandbox Code Playgroud) php authentication google-authentication google-authenticator
我正在使用Firebase来处理我的网站上的Google OAuth登录信息.有谁知道如何限制有权访问该应用程序的用户?例如,我只想要x@gmail.com,y @ gmail.com和z@gmail.com才能成功通过谷歌登录我的应用程序.
我不确定这是Firebase还是Google问题,但是我们非常感谢任何帮助.
<html>
<head>
<meta name="google-signin-client_id" content="MY_CLIENT_ID.apps.googleusercontent.com" />
</head>
<body>
<div class="g-signin2" data-onsuccess="onSignIn"></div>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<script type="text/javascript">
function onSignIn(googleUser) {
console.log("Succesfully Singed in!!!");
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
通过上面我可以看到一个谷歌登录按钮打开一个弹出窗口接受凭证并签到我.但我希望登录成功时触发onSignIn方法,这是不会发生的.有没有人对此有任何指示?
通过safari,chrome和firefox浏览器在osx上的apache服务器上试用它
主要用例是使用IPython作为我自己的Google帐户的CLI.我真正追求的是在启动IPython shell和实际发出针对API的有用调用之间的大小调整.
使用Google API进行身份验证的文档侧重于设置其他用户将用于访问其数据的应用程序.这导致了一个涉及浏览器的冗长的Oauth舞蹈,以便允许其他用户在不损害其凭证的情况下进行身份验证.但是,我不介意与自己分享我的私人凭证.我不打算分享代码.如果我确实共享了代码,我会使用类似的dotenv方法将凭据与代码分开.
Twitter为开发人员提供了第二组凭据,允许开发人员访问自己的帐户进行测试.因此,可以通过仅提供凭证集来以编程方式访问自己的帐户:允许调用API的开发人员凭证以及授予对开发人员自己的数据的访问权的其他凭证.对于例如:
from twitter import *
t = Twitter(
auth=OAuth(token, token_key, con_secret, con_secret_key))
# Get your "home" timeline
t.statuses.home_timeline()
# Update your status
t.statuses.update(
status="Tweeting from Python")
Run Code Online (Sandbox Code Playgroud)
con_secret*开发人员凭据和token*帐户访问凭据在哪里?
举个例子,从我自己的Youtube播放列表中检索内容的最简单的程序是什么?
我可以认为Python无头浏览器库可以给我我需要的东西.我已经在SE Software Recommendations上提出了相关问题 https://softwarerecs.stackexchange.com/questions/35744/python-headless-browser-library-for-oauth2-authentication-from-ipython-console
google-api google-authentication headless-browser google-oauth google-api-python-client
我的前端应用程序使用gmail帐户进行身份验证.
我在身份验证成功后检索id_token,并将其作为授权标头发送为承载令牌.
授权承载token_id
在nodejs服务器端,我调用以下方法来验证令牌.
exports.verifyUser = function(req, res, next) {
var GoogleAuth = require('google-auth-library');
var auth = new GoogleAuth();
var client = new auth.OAuth2(config.passport.google.clientID, config.passport.google.clientSecret, config.passport.google.callbackURL);
// check header or url parameters or post parameters for token
var token = "";
var tokenHeader = req.headers["authorization"];
var items = tokenHeader.split(/[ ]+/);
if (items.length > 1 && items[0].trim().toLowerCase() == "bearer") {
token = items[1];
}
if (token) { …Run Code Online (Sandbox Code Playgroud) 我正在使用vuejs 2,我在使用Google身份验证时遇到问题.
我成功设置并使用vue进行了注销和用户配置文件功能:
export default {
data() {
return {
user: null
};
},
methods: {
getUserProfile() {
const profile = gapi.auth2.currentUser.get().getBasicProfile();
console.log(profile.getIdToken());
},
signOut() {
const auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('user signed out');
});
}
},
};
Run Code Online (Sandbox Code Playgroud)
我的主要问题是onSignIn(googleUser)来自的功能
<div class="g-signin2" data-onsuccess="onSignIn"></div>
在data-onsuccess="onSignIn"正在寻找VUE实例之外的js函数.我尝试onSignIn(googleUser)在我的HTML文件中添加该功能,如:
<script>
function onSignIn(googleUser) {
const auth2 = gapi.auth2.init();
if (auth2.isSignedIn.get()) {
const profile = auth2.currentUser.get().getBasicProfile();
console.log(profile.getName());
console.log(googleUser.getAuthResponse().id_token);
console.log(googleUser.getAuthResponse().uid);
console.log(auth2.currentUser.get().getId());
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
这按预期工作,但我想知道是否可以在我的vue文件而不是本机javascript方式中添加它,因为在此函数内部,我将调用其他vue方法.
或者有没有办法我可以onSignIn(googleUser)在vue中添加该功能,然后在Google Auth完成时调用它?
我正在使用Google云平台,我必须使用java非Web应用程序访问云功能,例如我尝试使用Google云存储JSON API从Google云存储中存储和检索对象.
在访问那些我需要验证我的应用程序之前,我发现授权API具有授权访问权限.
当我试图从Google云平台获取凭据时,我最终选择了三种凭据
我浏览了GCP文档,但没有获得区分其中的明确信息,我对GCP几乎是新手,所以请您使用示例Java程序分享解释这些凭据类型的任何信息或博客链接,以显示如何使用Google云客户端库 API.
google-authentication google-cloud-storage google-cloud-platform
我在我的Django网络应用程序中使用Google Speech API.我已经为它设置了一个服务帐户,并且能够在本地进行API调用.我已将本地GOOGLE_APPLICATION_CREDENTIALS环境变量指向服务帐户的json文件,该文件包含所有凭据.
我试过GOOGLE_APPLICATION_CREDENTIALS通过运行来设置heroku的环境变量
$ heroku config:set GOOGLE_APPLICATION_CREDENTIALS="$(< myProjCreds.json)"
$ heroku config
GOOGLE_APPLICATION_CREDENTIALS: {
Run Code Online (Sandbox Code Playgroud)
^^它"在json文件的第一次出现时终止,紧接在{
和之后
$ heroku config:set GOOGLE_APPLICATION_CREDENTIALS='$(< myProjCreds.json)'
$ heroku config
GOOGLE_APPLICATION_CREDENTIALS: $(< myProjCreds.json)
Run Code Online (Sandbox Code Playgroud)
^^该命令被保存到环境变量中
我尝试将heroku的GOOGLE_APPLICATION_CREDENTIALSenv变量设置为服务帐户的json文件的内容,但它不起作用(因为显然此变量的值必须是json文件的绝对路径).我发现它授权一个开发者账户,而无需加载JSON户头,而使用的方法GOOGLE_ACCOUNT_TYPE,GOOGLE_CLIENT_EMAIL和GOOGLE_PRIVATE_KEY.这是GitHub的讨论页面.
我想为我的Django网络应用程序提供类似(或不同的东西)的东西,我想避免将json文件上传到我的Django web-app的目录(如果可能),以确保安全.
django heroku environment-variables google-authentication google-speech-api
我以前使用过 Google Apps 脚本UrlFetchApp没有问题。
昨天我创建了一个新的,如果我包含该UrlFetchApp服务,我将无法运行任何功能——即使它被注释掉了!
当我尝试运行脚本时,我会得到通常的“权限”弹出窗口。但是当我同意时,我得到:
暂时禁用此应用的 Google 登录 此应用尚未通过 Google 验证才能使用 Google 登录。
这是个人脚本,我是唯一会使用它的人 - 我有什么选择?我不会去获取域只是为了通过验证来运行一个简单的小脚本......
google-authentication google-apps-script oauth-2.0 google-signin