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

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

新規登録して質問してみよう
ただいま回答率
85.50%
ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

Q&A

0回答

699閲覧

Auth0を用いたログイン機能が機能しない

Yuta_for

総合スコア21

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

0グッド

0クリップ

投稿2020/06/14 07:12

##エラー概要
こちらの技術書を参考にAWSのサーバレスアーキテクチャの勉強をしているのですが、ログインページの実装が上手くいかない状況です。AWSによるサーバレスアーキテクチャ 5章の認証と認可
若干書籍の情報が古いため現在では非推奨のサービスを使用しているのも原因だと思われるですが、どこが古く代替手段がなんなのかわからずに詰まっている状態です。
Auth0 Lockの設定を行っている以下のコードが原因だと思うのですが、修正箇所が皆目見当がつきません。
###コード一覧

JavaScript

1var userController = { 2 data: { 3 auth0Lock: null, 4 config: null 5 }, 6 uiElements: { 7 loginButton: null, 8 logoutButton: null, 9 profileButton: null, 10 profileNameLabel: null, 11 profileImage: null 12 }, 13 init: function(config) { 14 var that = this; 15 16 this.uiElements.loginButton = $('#auth0-login'); 17 this.uiElements.logoutButton = $('#auth0-logout'); 18 this.uiElements.profileButton = $('#user-profile'); 19 this.uiElements.profileNameLabel = $('#profilename'); 20 this.uiElements.profileImage = $('#profilepicture'); 21 22 this.data.config = config; 23 this.data.auth0Lock = new Auth0Lock(config.auth0.clientId, config.auth0.domain, { 24 //code omitted for brevity 25 configurationBaseUrl: config.clientConfigurationBaseUrl, 26 overrides: { 27 __tenant: config.auth0Tenant, 28 __token_issuer: config.authorizationServer.issuer 29 }, 30 //code omitted for brevity 31 }); 32 33 var idToken = localStorage.getItem('userToken'); 34 35 if (idToken) { 36 this.configureAuthenticatedRequests(); 37 this.data.auth0Lock.getProfile(idToken, function(err, profile) { 38 if (err) { 39 return alert('There was an error getting the profile: ' + err.message); 40 } 41 that.showUserAuthenticationDetails(profile); 42 }); 43 } 44 45 this.wireEvents(); 46 }, 47 configureAuthenticatedRequests: function() { 48 $.ajaxSetup({ 49 'beforeSend': function(xhr) { 50 xhr.setRequestHeader('Authorization', 'Bearer ' + localStorage.getItem('userToken')); 51 } 52 }); 53 }, 54 showUserAuthenticationDetails: function(profile) { 55 var showAuthenticationElements = !!profile; 56 57 if (showAuthenticationElements) { 58 this.uiElements.profileNameLabel.text(profile.nickname); 59 this.uiElements.profileImage.attr('src', profile.picture); 60 } 61 62 this.uiElements.loginButton.toggle(!showAuthenticationElements); 63 this.uiElements.logoutButton.toggle(showAuthenticationElements); 64 this.uiElements.profileButton.toggle(showAuthenticationElements); 65 }, 66 wireEvents: function() { 67 var that = this; 68 69 this.uiElements.loginButton.click(function(e) { 70 var params = { 71 authParams: { 72 scope: 'openid email user_metadata picture' 73 } 74 }; 75 76 that.data.auth0Lock.show(params, function(err, profile, token) { 77 if (err) { 78 // Error callback 79 alert('There was an error'); 80 } else { 81 // Save the JWT token. 82 localStorage.setItem('userToken', token); 83 that.configureAuthenticatedRequests(); 84 that.showUserAuthenticationDetails(profile); 85 } 86 }); 87 }); 88 89 this.uiElements.logoutButton.click(function(e) { 90 localStorage.removeItem('userToken'); 91 92 that.uiElements.logoutButton.hide(); 93 that.uiElements.profileButton.hide(); 94 that.uiElements.loginButton.show(); 95 }); 96 97 this.uiElements.profileButton.click(function(e) { 98 var url = that.data.config.apiBaseUrl + '/user-profile'; 99 100 $.get(url, function(data, status) { 101 alert(JSON.stringify(data)); 102 }) 103 }); 104 } 105}

分からないことだらけで質問の仕方もめちゃくちゃになってしまいましたが、原因がわかる方がいましたらご教授お願い致します。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/06/14 08:28

えーと、回答者に契約して試して問題を出力して回答しろと?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問