0

ユーザーがいくつかのプロファイルを作成できる Web サイトを作成しています。すべてのプロファイルは、作成者が選択したユーザーのみが閲覧できるように開いている必要があります。他の人はそれらを見ることはありません。

angularを使用すると、ルートを使用してページを簡単に作成できるため、新しいページごとに次のようなものになります。

www.example.com/profiles/profile/1
www.example.com/profiles/profile/2
www.example.com/profiles/profile/3
etc.

しかし、たとえば、プロファイル 1、2、3 を所有していて、プロファイル/4、プロファイル/5 などを簡単に表示できるとします。

閲覧を禁止したり、アクセス権を付与されたユーザーよりも少ないデータしか閲覧できないシステムをどのように実装できますか?

ありがとうございました。

4

4 に答える 4

1

言われたように、答えはサーバー側でなければなりません。認証は常にサーバー側で行う必要があります..

あなたの場合、これまで行ってきたように、データベースに一度だけクエリを実行する必要があります。実際には、正しい用語は、http リクエストを API に送信することです (http リクエストが db クエリを実行しているため)。その http 要求は、取得したアクセス許可の種類を確認することから開始し、適切なデータ (限られたユーザーのリスト、特定のユーザー、またはその特定のコンテンツにアクセスできないというエラー) を返す必要があります。

それがあなたにとって理にかなっていることを願っています。

于 2013-11-21T09:01:41.947 に答える
0

データベースを使用している場合は、列を追加できますAccessRights

0 = 基本

1 = プロファイル 1

2 = プロファイル 1/2

の異なる整数により、AccessRights異なるものにアクセスできます。

アクセス権 1 を持つ人々がアクセス権 3 の資料にアクセスするのを阻止する

 if ($Accessrights < 3)
{
 die("You Cannot View This");
}

$Accessrightsまたは何かに変数を割り当てるのはあなた次第です。

うまくいけば、これはあなたが探しているものです

于 2012-12-15T02:34:04.193 に答える
0

ユーザーがアクセスするページごとにデータベースにクエリを実行する必要がありますか? それは機知に富みすぎませんか?

私が作りたいアクセスシステムは、facebook と同じようなものです。自分のページと友達のページは表示できますが、プライベート ページは表示できません。自分のプロフィールは編集できますが、他の人のプロフィールは編集できません。

これは正しい方法ですか?

于 2012-12-15T03:14:44.903 に答える
0

ユーザーが自分のレコードを表示しているかどうか、または任意のレコードを表示できるかどうかを確認できます

$iUserType = USER_TYPE_ADMIN; // 定数 $iUserId = 5; // これとユーザー タイプは、ログイン後にセッションに保存できます

$iViewProfileId = 5; // これはリクエスト パラメータから取得する必要があります

if (($iViewProfileId != $iUserId) AND     (USER_TYPE_ADMIN != $iUserType)) {
    // error, user is not permitted to view the record
}
于 2012-12-15T06:36:29.737 に答える