質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1757閲覧

【VisualStudio,C#,Webアプリ作成】Googleログイン実行後のリダイレクトページを変更したい

Risney

総合スコア148

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

0クリップ

投稿2021/09/22 06:06

編集2021/09/24 04:30

前提・実現したいこと

Googleログイン完了後の画面遷移ができません。

発生している問題・エラーメッセージ

Google Cloud Platformで承認済みのリダイレクトURIは以下の通りになっており、
リダイレクトURI=ログイン後に遷移する画面のURLという認識なのですが、
例えば承認済みのリダイレクトURIを「https://localhost:5001/Home/Privacy」としても、
https://localhost:5001/Home/Privacy」には遷移しません。
Google Cloud Platform

該当のソースコード

HomePage

1@{ 2 ViewData["Title"] = "Home Page"; 3} 4 5<html lang="en"> 6<head> 7 <meta name="google-signin-scope" content="profile email"> 8 <meta name="google-signin-client_id" content="327764760783-rfgj8ft9gu5rppifn2r3fk7vjaar9njo.apps.googleusercontent.com"> 9 <script src="https://apis.google.com/js/platform.js" async defer></script> 10</head> 11<body> 12 <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div> 13 <script>function onSignIn(googleUser) { 14 // Useful data for your client-side scripts: 15 var profile = googleUser.getBasicProfile(); 16 console.log("ID: " + profile.getId()); // Don't send this directly to your server! 17 console.log('Full Name: ' + profile.getName()); 18 console.log('Given Name: ' + profile.getGivenName()); 19 console.log('Family Name: ' + profile.getFamilyName()); 20 console.log("Image URL: " + profile.getImageUrl()); 21 console.log("Email: " + profile.getEmail()); 22 23 // The ID token you need to pass to your backend: 24 var id_token = googleUser.getAuthResponse().id_token; 25 console.log("ID Token: " + id_token); 26 }</script> 27 28 <a href="#" onclick="signOut();">Sign out</a> 29 <script>function signOut() { 30 var auth2 = gapi.auth2.getAuthInstance(); 31 auth2.signOut().then(function () { 32 console.log('User signed out.'); 33 }); 34 }</script> 35 36</body> 37</html>

サイトの操作手順

手順①:画像の「ログイン」ボタンをクリックする
イメージ説明

手順②:アカウント選択する
イメージ説明

手順③:ログイン後はログインボタンのテキストが「Singed in」に変わり、
ログインボタン下の「Sign out」ボタンをクリックすれば最初の画面に戻ります。
イメージ説明

試したこと

発生している問題のところにも記載しましたが、
リダイレクトURIを「https://localhost:5001/Home/Privacy」としても、
手順②でアカウント選択後に「https://localhost:5001/Home/Privacy」には遷移しません。

そもそもリダイレクトURIの認識が違うのでしょうか、、

補足情報(FW/ツールのバージョンなど)

VisualStudio for Mac

参考サイトURL

[公式]Web サーバー アプリケーションでの OAuth 2.0 の使用
[公式]OAuth 2.0
[公式]GoogleAPIのOAuth2.0スコープ一覧
Google API Client Library for .NETの使い方
C#を使用してGoogleサービスアカウントのアクセストークンを取得する
c# - Web Api OAuthでアクセストークンを取得するにはどうすればよいですか?
RESTAPIを使用したGoogleOAuth認証
OAuth 2.0 の解説サイトを漁る前に
コンソールからGoogle OAuth2の認証を行う
OAuthとAPIキー、アクセスするデータの種類とAPIの認証方法の関係
Google API の Access Token を手動で取得する

TATEISHI👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/09/24 06:39

試す環境が無いので想像ですが、"localhost"はダメなのではないでしょうか。
Risney

2021/09/24 07:09

回答ありがとうございます。 自己解決方法にも記載いたしましたが、 Google Cloud Platformで承認済みのリダイレクトURIではなく、 シンプルにボタンタップ時にリンクを追加したら遷移できました。
guest

回答1

0

自己解決

Google Cloud Platformで承認済みのリダイレクトURIではなく、
シンプルにボタンタップ時にリンクを追加したら遷移できました。

code

1@{ 2 ViewData["Title"] = "Home Page"; 3} 4 5<html lang="ja"> 6<head> 7 <meta name="google-signin-scope" content="profile email"> 8 <meta name="google-signin-client_id" content="327764760783-rfgj8ft9gu5rppifn2r3fk7vjaar9njo.apps.googleusercontent.com"> 9 <script src="https://apis.google.com/js/platform.js" async defer></script> 10</head> 11<body> 12 @*ログインボタン*@ 13 <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div> 14 @*ログインボタンタップ時の挙動*@ 15 <script>function onSignIn(googleUser) { 16 @*Useful data for your client - side scripts:*@ 17 var profile = googleUser.getBasicProfile(); 18 console.log("ID: " + profile.getId()); // Don't send this directly to your server! 19 console.log('Full Name: ' + profile.getName()); 20 console.log('Given Name: ' + profile.getGivenName()); 21 console.log('Family Name: ' + profile.getFamilyName()); 22 console.log("Image URL: " + profile.getImageUrl()); 23 console.log("Email: " + profile.getEmail()); 24 25 location.href = 'https://localhost:5001/Home/Privacy'; //追加 26 </script> 27</body> 28</html> 29

投稿2021/09/24 07:09

Risney

総合スコア148

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問