标签: google-authentication


如何使用Microsoft.AspNetCore.Authentication.Google强制HTTPS回调?

我正在使用Google身份验证创建一个AspNetCore应用程序。我正在Ubuntu服务器上的Nginx反向代理后面部署此应用程序。 几乎所有的东西都在工作,但是我在回调URL上遇到了麻烦。

在Google开发人员控制台中,我将http:// localhost:5000 / signin-google设置为授权重定向URI。这可以按预期工作,并允许我从工作站运行时使用Google身份验证。

为了进行生产,我将https:// myserver / signin-google设置为授权重定向URI。但是,当我尝试使用它时,从accounts.google.com收到错误消息,表明未授权http:// myserver / signin-google(请注意缺少s)。确实如此; 它不应该被授权,我的服务器甚至不响应端口80的请求。

如何告诉身份验证中间件,我需要它使用HTTPS作为回调URL?

asp.net-mvc nginx google-authentication asp.net-identity

3
推荐指数
1
解决办法
1011
查看次数

Node.JS 验证 Google 身份验证令牌

我正在尝试使用 Express.JS 框架构建一个 Node.JS REST 服务器,该框架为移动应用程序集成了 Google 身份验证。使用的 Node.JS 版本是 0.12.7。

我在验证从应用程序收到的 Google 令牌时遇到问题,因为我尝试加载的模块似乎返回了错误。

用于验证此令牌的模块是passport-google-token。用于初始化该模块和检查令牌的代码如下:

index.js 文件

'use strict';

import express from 'express';
import passport from 'passport';
import {setTokenCookie} from '../../auth.service';

var router = express.Router();

router
  .post('/callback', passport.authenticate('google-token'), setTokenCookie);

export default router;
Run Code Online (Sandbox Code Playgroud)

护照.js文件

import passport from 'passport';
import GoogleTokenStrategy from 'passport-google-token';

export function setup(User, config) {
  passport.use(new GoogleTokenStrategy({
    clientID: config.google.clientID,
    clientSecret: config.google.clientSecret
  },
  function(accessToken, refreshToken, profile, done) {
    User.findOne({'google.id': profile.id}).exec()
      .then(user => {
        if (user) {
          console.log(user);
          return …
Run Code Online (Sandbox Code Playgroud)

google-authentication node.js access-token express passport.js

3
推荐指数
1
解决办法
2094
查看次数

Google Api、Node.js - invalid_grant 格式错误的身份验证代码

我正在尝试在 node.js 上使用 google api,但总是出现以下错误:

invalid_grant
Malformed auth code
Run Code Online (Sandbox Code Playgroud)

通过在网络上搜索,我发现客户端 ID 应该是电子邮件地址,而不是控制台上的客户端 ID。我将其更改为我的 google 帐户的电子邮件地址,情况更糟,因为我无法使用 google 进行连接

这是改编自https://developers.google.com/youtube/v3/docs/videos/list的代码

var fs = require('fs');
var readline = require('readline');
var { google } = require('googleapis');
// var googleAuth = require('google-auth-library');

// If modifying these scopes, delete your previously saved credentials
// at ~/.credentials/google-apis-nodejs-quickstart.json
var SCOPES = ['https://www.googleapis.com/auth/youtube.force-ssl']
var TOKEN_DIR = (process.env.HOME || process.env.HOMEPATH ||
    process.env.USERPROFILE) + '/.credentials/';
var TOKEN_PATH = TOKEN_DIR + 'google-apis-nodejs-quickstart.json';

// Load client secrets from a local file. …
Run Code Online (Sandbox Code Playgroud)

google-api google-authentication node.js

3
推荐指数
1
解决办法
3367
查看次数

重定向 URI 中“postmessage”的目的是什么?

据我所知,在 Google 的身份验证代码流中,redirect_uri 需要是“postmessage”而不是 URI。

谁能解释一下这个值具体是做什么的?

我最好的解释是它告诉浏览器返回到帖子的来源,但我没有支持这个假设的文档。

关于此主题的文档似乎为零,但在大多数情况下它是给定的解决方案。任何澄清都会很好。

authentication google-authentication oauth-2.0 google-oauth

3
推荐指数
1
解决办法
1276
查看次数

Google Dataflow Pipeline 创建失败并显示 400:错误请求/无效授权

一年多以来,我一直在为 google 数据流构建和创建模板。我从来没有遇到过创建模板并通过options.setTemplateLocation(templatePath);调用将它们上传到 gcs 的问题。从今天开始,Pipeline.create(options);在 eclipse 中使用 java 程序创建管道并运行 java 程序时,出现以下异常:

Exception in thread "main" java.lang.RuntimeException: Failed to construct instance from factory method DataflowRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions)
    at org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:233)
    at org.apache.beam.sdk.util.InstanceBuilder.build(InstanceBuilder.java:162)
    at org.apache.beam.sdk.PipelineRunner.fromOptions(PipelineRunner.java:52)
    at org.apache.beam.sdk.Pipeline.create(Pipeline.java:142)
    at mypackage.PipelineCreation.getTemplatePipeline(PipelineCreation.java:34)
    at myotherpackage.Main.main(Main.java:51)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:222)
    ... 5 more
Caused by: java.lang.RuntimeException: Unable to verify that GCS bucket gs://my-projects-staging-bucket exists.
    at org.apache.beam.sdk.extensions.gcp.storage.GcsPathValidator.verifyPathIsAccessible(GcsPathValidator.java:92)
    at org.apache.beam.sdk.extensions.gcp.storage.GcsPathValidator.validateOutputFilePrefixSupported(GcsPathValidator.java:61)
    at org.apache.beam.runners.dataflow.DataflowRunner.fromOptions(DataflowRunner.java:228)
    ... 10 more
Caused by: …
Run Code Online (Sandbox Code Playgroud)

bad-request google-authentication google-cloud-storage google-cloud-dataflow

3
推荐指数
1
解决办法
1747
查看次数

Alexa 技能帐户与 Google API 凭据链接,刷新令牌出现问题

我在 Alexa 帐户链接授权方面遇到了一些问题。

这些是我遵循的步骤:

  1. 我从 Google Cloud Console 获得了凭据(客户端 ID、客户端机密...)
  2. 在 Alexa 开发者控制台上设置,使用“Auth Code Grant”作为授权授权类型
  3. 激活了我的 Alexa 应用程序上的技能并使用我的 Google 帐户成功登录
  4. 现在我在请求中获得了访问令牌,在 handler_input.request_envelope.context.system.user.access_token

问题是访问令牌在一小时后过期,Alexa 不管理令牌的刷新

我应该怎么做才能避免每次一小时后都要求我的用户登录?我应该Implicit grant用作授权类型吗?我应该以某种方式获得刷新令牌吗?

附加信息:这是一项使用 Python3 连接到 AWS Lambda 的自定义技能

google-api google-authentication alexa alexa-skill alexa-skills-kit

3
推荐指数
1
解决办法
1085
查看次数

Airflow Google 身份验证无法按预期工作

我按照文档中提供的步骤操作:https : //airflow.apache.org/security.html#google-authentication

完成所有步骤并重新启动网络服务器后。我没有看到登录页面有任何区别,它仍然要求我进行密码验证。我不确定如何在网页上获取 google 登录选项。我在网络服务器日志上没有收到任何错误。

Configuration=> airflow.cfg:
authenticate = True
#auth_backend = airflow.contrib.auth.backends.password_auth
auth_backend = airflow.contrib.auth.backends.google_auth

[google]
client_id = <client id>
client_secret = <secret key>
oauth_callback_route = /oauth2callback
domain = <domain_name>.com
Run Code Online (Sandbox Code Playgroud)

google-authentication airflow

3
推荐指数
1
解决办法
2928
查看次数

将 Google Web 身份验证添加到 Svelte/Sapper 的“正确”方法是什么?

看看 Svelte/Sapper,我很好奇将Google Sign-In for Websites 之类的东西添加到我的应用程序的正确方法是什么。

我从他们从上面的站点给你的示例代码中得到了一切,但我已经通过将 onsuccess "onSignIn" 函数添加到 template.html 文件来完成它,这似乎不是正确的方法。

在 src/routes/template.html 里面

<script src="https://apis.google.com/js/platform.js" async defer></script>
<script>
  function onSignIn(googleUser) {
    var profile = googleUser.getBasicProfile();
    console.log("ID: " + profile.getId());
  }
</script>
Run Code Online (Sandbox Code Playgroud)

在 src/components/Nav.svelte 里面

<div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,因为 onSignIn 可以访问窗口,但似乎我应该能够将它添加到按钮本身所在的 Nav 组件。有没有首选的方法来处理这样的事情?

google-authentication svelte

3
推荐指数
1
解决办法
1725
查看次数

firebase auth 在刷新时丢失 cookie

技术:框架:Angular,组件:Ionic,Auth-Service:Firebase,NPM-Module:https : //www.npmjs.com/package/@angular/fire

情况:用户可以通过用户名和密码登录,也可以使用 Google Auth 登录。当用户登录时,一些 cookie 会存储在浏览器中。

按照这里的要求是我用来登录的代码:

登录

loginWithGoogle() {
    from(this.authService.logIn())
        .pipe(
            concatMap(() => this.authService.getAuth().signInWithPopup(new auth.GoogleAuthProvider())),
            concatMap(userCredential => this.initStateAndRoute(userCredential)),
        )
        .subscribe();
}
Run Code Online (Sandbox Code Playgroud)

认证服务

export class AuthService {

constructor(
    private fireAuth: AngularFireAuth,
) {
}

getUser(): Observable<firebase.User> {
    return this.fireAuth.user;
}

logOut() {
    return this.fireAuth.auth.signOut();
}

getAuth() {
    return this.fireAuth.auth;
}

logIn() {
    return this.fireAuth.auth.setPersistence(firebase.auth.Auth.Persistence.LOCAL);
}
Run Code Online (Sandbox Code Playgroud)

}

Auth-Guard-Service

@Injectable({
providedIn: 'root'
})
export class AuthGuardService implements CanActivate {
constructor( …
Run Code Online (Sandbox Code Playgroud)

google-authentication firebase firebase-authentication angular

3
推荐指数
1
解决办法
716
查看次数