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

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

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

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

1回答

3178閲覧

monacaでメールアドレス認証の際cannnot POSTエラーが出る

hitomi_

総合スコア10

ログイン

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

2クリップ

投稿2020/02/04 23:57

前提・実現したいこと

アプリ開発は初めてです。javascriptは初級者です。

monacaとニフクラbackendを利用したアプリでメール・パスワードでのログイン機能を実装したいと思っています。
https://github.com/natsumo/MonacaUserDemoApp
↑こちらのテンプレートアプリを利用してメールアドレス認証、会員ログイン機能を実装しようとしましたが、登録ボタンを押すと下記のエラーが出て登録ができません。

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

新規会員登録画面でメールアドレスを入力し、登録確認メールを送信するボタンを押すと下記のエラーが出ます。

Error: cannnot POST https://mbaas.api.nifcloud.com:443/2013-09-01/requestMailAddressUserEntry (404)

また、ログイン画面でメールアドレスとパスワードを入力し、ログインボタンを押すと下記のエラーが出ます。

Error: cannnot GET https://mbaas.api.nifcloud.com:443/2013-09-01/login?mailAddres=hoge%40hoge.jp&password=hoge (404)

該当のソースコード

jacascript

1// [NCMB] APIキー設定 2var appKey = "ニフクラからコピーしたappキー"; 3var clientKey = "ニフクラからコピーしたclientキー"; 4 5// [NCMB] SDKの初期化 6var ncmb = new NCMB(appKey, clientKey); 7 8// ログイン中の会員 9var currentLoginUser; 10 11/********** メールアドレス / PW 認証 **********/ 12// 【メール / PW 認証】「登録する」ボタン押下時の処理 13function onEmailRegisterBtn() { 14 // loading の表示 15 $.mobile.loading('show'); 16 // 入力フォームからメールアドレス(mailAddress)を取得 17 var mailAddress = $("#reg_mailAddress").val(); 18 // [NCMB] メールアドレス に会員登録を行うためのメールを送信 19 ncmb.User.requestSignUpEmail(mailAddress) 20 .then(function(user){ 21 /* 処理成功 */ 22 alert("【メール / PW 認証】新規登録メールを配信しました。"); 23 console.log("【メール / PW 認証】新規登録メールを配信しました。"); 24 alert("届いたメールに記載されているURLにアクセスし、パスワードを登録してください。"); 25 // フィールドを空に 26 $("#reg_mailAddress").val(""); 27 // loading の表示終了 28 $.mobile.loading('hide'); 29 // 【メール / PW 認証】ログインページへ移動 30 $.mobile.changePage('#emailLoginPage'); 31 }) 32 .catch(function(error){ 33 /* 処理失敗 */ 34 alert("【メール / PW 認証】新規登録メールの配信に失敗しました:" + error); 35 console.log("【メール / PW 認証】新規登録メールの配信失敗しました:" + error); 36 // loading の表示終了 37 $.mobile.loading('hide'); 38 }); 39} 40 41// 【メール / PW 認証】「ログインする」ボタン押下時の処理 42function onEmailLoginBtn() { 43 // 入力フォームからメールアドレス(mailAddress)とPW(password)を取得 44 var mailAddress = $("#login_mailAddress").val(); 45 var password = $("#emailLogin_password").val(); 46 // loading の表示 47 $.mobile.loading('show'); 48 // [NCMB] メール / PW でログイン 49 ncmb.User.loginWithMailAddress(mailAddress, password) 50 .then(function(user) { 51 /* 処理成功 */ 52 console.log("【メール / PW 認証】ログインに成功しました"); 53 // [NCMB] ログイン中の会員情報の取得 54 currentLoginUser = ncmb.User.getCurrentUser(); 55 // フィールドを空に 56 $("#login_mailAddress").val(""); 57 $("#emailLogin_password").val(""); 58 // 詳細ページへ移動 59 $.mobile.changePage('#DetailPage'); 60 }) 61 .catch(function(error) { 62 /* 処理失敗 */ 63 console.log("【メール / PW 認証】ログインに失敗しました: " + error); 64 alert("【メール / PW 認証】ログインに失敗しました: " + error); 65 // フィールドを空に 66 $("#login_mailAddress").val(""); 67 $("#emailLogin_password").val(""); 68 // loading の表示 69 $.mobile.loading('hide'); 70 }); 71} 72 73/********** 共通 **********/ 74// 「ログアウト」ボタン押下後確認アラートで「はい」押下時の処理 75function onLogoutBtn() { 76 // [NCMB] ログアウト 77 ncmb.User.logout(); 78 console.log("ログアウトに成功しました"); 79 // ログイン中の会員情報を空に 80 currentLoginUser = null; 81 // currentUserDataリストを空に 82 $("#currentUserData").empty(); 83 // 【ID / PW】ログインページへ移動 84 $.mobile.changePage('#IDLoginPage'); 85} 86 87//--------------------------------------------------------------------------- 88 89// アプリ起動時 90$(function() { 91 $.mobile.defaultPageTransition = 'none'; 92 /* メール / PW */ 93 $("#emailLoginBtn").click(onEmailLoginBtn); 94 $("#YesBtn_mailAddress").click(onEmailRegisterBtn); 95 $("#NoBtn_mailAddress").click(onDeleteField); 96 /* 共通 */ 97 $("#YesBtn_logout").click(onLogoutBtn); 98}); 99 100// loading 表示生成 101$(document).on('mobileinit',function(){ 102 $.mobile.loader.prototype.options; 103}); 104 105// DetailPage ページが表示されるたびに実行される処理 106$(document).on('pageshow','#DetailPage', function(e, d) { 107 // currentUserData を表示 108 getUserData(); 109 // loading の表示を終了 110 $.mobile.loading('hide'); 111}); 112 113// currentUser のデータを表示する処理 114function getUserData() { 115 // 値を取得 116 var objectId = currentLoginUser.get("objectId"); 117 var userName = currentLoginUser.get("userName"); 118 var mailAddress = currentLoginUser.get("mailAddress"); 119 var authData = JSON.stringify(currentLoginUser.get("authData")); 120 var date = new Date(currentLoginUser.get("createDate")); 121 var createDate = date.getFullYear() + "-" 122 + ((date.getMonth() < 10) ? "0" : "") + date.getMonth() + "-" 123 + ((date.getDate() < 10) ? "0" : "") + date.getDate() + "T" 124 + ((date.getHours() < 10) ? "0" : "") + date.getHours() + ":" 125 + ((date.getMinutes() < 10) ? "0" : "") + date.getMinutes() + ":" 126 + ((date.getSeconds() < 10) ? "0" : "") + date.getSeconds() + "." 127 + ((date.getMilliseconds() < 10) ? "0" : "") + date.getMilliseconds() + "+09:00"; 128 // リストに追加 129 $("#currentUserData").append("<tr style='border-right: 1px solid #ccc; border-left: 1px solid #ccc; color: #FFFFFF; background: #04162e;'><th scope='row' id='key'>key</th><td scope='row' id='value' style='width: 100%;'>value</td></tr>"); 130 $("#currentUserData").append("<tr><th>objectId</th><td><input type='text' style='width: 95%; color: #959595;' readonly='readonly'; value='" + objectId + "'/></tr>"); 131 $("#currentUserData").append("<tr><th>userName</th><td><input type='text' style='width: 95%; color: #959595;' readonly='readonly'; value='" + userName + "'/></tr>"); 132 $("#currentUserData").append("<tr><th>password</th><td><input type='text' style='width: 95%; color: #959595;' readonly='readonly'; value='(hidden)'/></tr>"); 133 $("#currentUserData").append("<tr><th>mailAddress</th><td><input type='text' style='width: 95%; color: #959595;' readonly='readonly'; value='" + mailAddress + "'/></tr>"); 134 $("#currentUserData").append("<tr><th>authData</th><td><input type='text' style='width: 95%; color: #959595;' readonly='readonly'; value='" + authData + "'/></tr>"); 135 $("#currentUserData").append("<tr><th>createDate</th><td><input type='text' style='width: 95%; color: #959595;' readonly='readonly'; value='" + createDate + "'/></tr>"); 136 // リストを更新 137 $("#currentUserData").listview('refresh'); 138} 139 140function onDeleteField() { 141 // フィールドを空に 142 $("#reg_mailAddress").val(""); 143} 144

試したこと

Cordovaバージョンアップグレード(CLI Version 7.1.0 → 9.0.0)
別のログイン認証テンプレート(https://github.com/NIFCLOUD-mbaas/monaca_login_template)を試してみても同じエラーが出ました。

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

monacaのデモ、実機(iPhone7)のデモでも同じエラーが出ます。
ニフクラの会員認証設定は「メールアドレス/パスワード認証を許可する」にチェックを、
メール設定は「確認メールの送信をする」にチェックを入れてあります。

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

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

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

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

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

guest

回答1

0

ベストアンサー

実際にニフクラで確認しましたが、アプリケーションキーを間違えて設定すると、**(404)**のエラーが発生します。
再度確認してみてはいかがでしょうか。

JavaScript

1// [NCMB] APIキー設定 2var appKey = "ニフクラからコピーしたappキー"; 3var clientKey = "ニフクラからコピーしたclientキー";

イメージ説明

投稿2020/02/05 09:18

otak-lab

総合スコア276

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

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

hitomi_

2020/02/05 09:46

キーを再生成して試したところ、意図通りの結果になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問