SmartService App Studioのアプリケーションでログインシステムを追加する必要があるため、Webサービスを使用してログインシステムを作成することが可能かどうかは疑問でしたか?ログインシステムのWebサービスを作成するにはどうすればいいですか?
おかげ
SmartService App Studioのアプリケーションでログインシステムを追加する必要があるため、Webサービスを使用してログインシステムを作成することが可能かどうかは疑問でしたか?ログインシステムのWebサービスを作成するにはどうすればいいですか?
おかげ
はい、それは可能です。
可能な解決策の1つは、サーバからユーザの情報を取得し、ユーザが入力したパスワードとサーバから来たパスワードが同じであればログインして比較することです。私は個人的にFirebaseをサーバとして使用します。ユーザーのオブジェクト名を電子メールとして保存するので、このユーザーのオブジェクトを取得するたびに、そのURLで電子メールでGETリクエストを行います。例えば、
など。
var webclient = new SMF.Net.WebClient({
URL : "https://exampleapp.firebaseio.com/Users/[email protected]",
httpMethod : "GET",
...
onSyndicationSuccess : function(e){
var response = JSON.parse(e.responseText);
if(response.password === Pages.Page1.UserPassword.text){
//Login
} else {
alert("Wrong Password!");
}
}
});
役に立てば幸い! :)
EDIT
var ROOT_URL = "https://exampleapp.firebaseio.com/"; //Change to your Firebase App
var FIREBASE_CREDENTIAL = "yourAppSecret"; //Change to your Firebase App Secret
var firebase = {
register : function (email, password, callback) {
var emailReplace = email.replace(/\./g, ",");
var beginRegister = function() {
requestObj = {
"email" : email,
"password" : password
};
var requestJSON = JSON.stringify(requestObj);
var wcRegister = new SMF.Net.WebClient({
URL : ROOT_URL + "Users/" + emailReplace + ".json?auth=" + FIREBASE_CREDENTIAL,
httpMethod : "POST",
requestHeaders : ['Content-Type:application/json', 'X-HTTP-Method-Override:PATCH'],
requestBody : requestJSON,
onSyndicationSuccess : function (e) {
//Registered, do something
callback();
},
onServerError : function (e) {
//Do something
}
});
wcRegister.run(true);
};
var isTaken = new SMF.Net.WebClient({
URL : ROOT_URL + "Users/" + emailReplace + ".json?auth=" + FIREBASE_CREDENTIAL,
httpMethod : "GET",
requestHeaders : ["Content-Type:application/json"],
onSyndicationSuccess : function (e) {
var response = JSON.parse(isTaken.responseText);
if (response !== null) {
//Email is taken, do something
} else {
beginRegister(); //Email is not taken, continue
}
},
onServerError : function (e) {
//Server Error, do something
}
});
isTaken.run(true);
},
login : function (email, password, callback) {
var emailReplace = email.replace(/\./g, "%2C");
var wcLogin = new SMF.Net.WebClient({
URL : ROOT_URL + "Users/" + emailReplace + ".json?auth=" + FIREBASE_CREDENTIAL,
httpMethod : "GET",
requestHeaders : ["Content-Type:application/json"],
onSyndicationSuccess : function (e) {
var responseText = JSON.parse(wcLogin.responseText);
if (responseText) {
if (password === responseText.password) {
//User logged, do something
callback();
} else {
//Password is wrong, do something
}
} else {
//User doesn't exist, do something
}
},
onServerError : function (e) {
//Server error, do something
}
});
wcLogin.run(true);
}
}
ところ、(空きスペースに)どこかにグローバルスコープでこのコードを入れて、あなたは、ユーザーがログインするときに、firebase.login(someEmail, somePassword, callback)
を使用コールバックは、ログインが完了したときに実行したい機能です。ユーザーを登録する場合は、firebase.register(someEmail, somePassword, callback)
を使用します。
OBS。 Firebaseルールのauth値を変更することを忘れないでください。
Firebase REST APIを使用すると、FirebaseのSimple Authやその他の認証方法を使用できません。ですから、firebaseのカスタム認証を使ってauthメソッドを自分で実装することはできますが、私はそれをお手伝いできません。私がやったのは、Firebaseにルールを追加して、アプリの秘密を使わずにサーバーに何かを読んだり(または書き込む)ことができないようにすることでした。これを行うには、アプリのルールに行き、.readと.writeメソッドを '' auth = [YourAppSecret] ''(アプリケーションの秘密は秘密のタブにあります)で更新してください。そして今、サーバを呼び出すたびに、 '?auth = YourAppSecret'をURLの最後に追加します。 –
あなたのURLは次のようなものになります: 'https://exampleapp.firebaseio.com/Users/someUser.json?auth = yourAppSecret' –
FireClientのURLをWebクライアントとして使用しましたが、クライアントの使用方法がわかりませんログインシステム –