前提・実現したいこと
アプリ開発は初めてです。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)のデモでも同じエラーが出ます。
ニフクラの会員認証設定は「メールアドレス/パスワード認証を許可する」にチェックを、
メール設定は「確認メールの送信をする」にチェックを入れてあります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/05 09:46