それはあなたのAPIの構造に非常に大きく依存しますが、私はこのようなsomethignをお勧めします:
まずあなたがNativescript Httpモジュールを使用する必要があります。実装は次のようになりますヘッダを返されたHTTP GETコールを取得するには:
http.request({ url: "https://httpbin.org/get", method: "GET" }).then(function (response) {
//// Argument (response) is HttpResponse!
//for (var header in response.headers) {
// console.log(header + ":" + response.headers[header]);
//}
}, function (e) {
//// Argument (e) is Error!
});
は、だからあなたのバックエンドは、ヘッダとしてJSONウェブトークンを返すことがあります。この場合、成功コールバックでは、アプリケーションの永続メモリにトークンを格納することをお勧めします。とその後
var tokenValue = appSettings.getString("storedToken");
if (tokenValue === undefined {
//do API call
}
:あなたが格納されている値があるかどうかをチェックすることができ、新たなトークンのためのAPIの呼び出しを行う前に、次に
var appSettings = require("application-settings");
appSettings.setString("storedToken", tokenValue);
:私は次のようになりApplication Settingsモジュールを、使用しますあなたのトークンは、API呼び出しをしたいと思うでしょう。このPOSTおよびヘッダーとしてトークンを追加します。
http.request({
url: "https://httpbin.org/post",
method: "POST",
headers: { "Content-Type": "application/json", "Auth": tokenValue },
content: JSON.stringify({ MyVariableOne: "ValueOne", MyVariableTwo: "ValueTwo" })
}).then(function (response) {
// result = response.content.toJSON();
// console.log(result);
}, function (e) {
// console.log("Error occurred " + e);
});
をあなたのバックエンドはAuth
ヘッダをチェックして、コールを受け入れるか拒否するかを決定するためにJWTを検証する必要があります。
また、さまざまなサービスとしてのバックエンドなど、すばらしいプラグインがいくつかあります。 AzureとFirebase
NativeScript-Angularモジュールを使用していますか?そうであれば、angular2のAuthトピックに従うことは良いスタートとなり、下のGeorgeのようにauthキーを保存することになります。 GitHubの例もご覧ください:https://github.com/NativeScript/nativescript-angular/blob/master/ng-sample/app/examples/router/login-test.ts特に新しいものを使用している場合ルータ。 – Matthew
私の主な問題は、バックアップされたセッションを継続する方法です。 Asp.netは、ログイン後に認証Cookieを戻しています。 @George Edwardsのコメントを使用しようとしています.AppSettingでCookieを保存します。 –
@SimeonGrigorovich私のアプローチはステートレスなものです。セッションを維持する必要はありません。 JWTに有効期限/日付を設定し、有効なjwtを持つリクエストが許可されるだけです。 –