2017-01-04 1 views
-5

私はDjangoのプロジェクトを持っています。今、私はいくつかのAPIをGoに移行する必要があります。Django + Go API

ユーザーがDjangoで認証され、要求によってGo APIでユーザーIDを取得すると、どのように条件を実装できますか?

Djangoの既存のrequest.user.is_authenticated()と同様です。

+0

Goはプログラミング言語であり、Webフレームワークではありません。認証されたユーザーや要求の概念はありません。 Goで同等のフレームワークを使用する必要があります。 –

+0

あなたは理解できませんでした。 Djangoには、ユーザーが認証されているかどうかを確認する方法があります。このセッションデータ/クッキーの方法をGo APIと統合したいと思います。 – henriquechehad

答えて

2

私はDjangoの既存のrequest.user.is_authenticated()がセッションまたはCookie情報に依存して、そのユーザが認証されているかどうかを判断していると仮定します。それが実際にクッキー内にある場合は、Goに同様のヘルパーを実装するだけです。クッキーが正しい場合は、trueを返し、そうでない場合はfalseを返します。

しかし、ほとんどの場合、Cookieにはセッション識別子のみが含まれていますが、セッションオブジェクトにはユーザー状態に関する情報が含まれている可能性があります。セッションオブジェクトはDjangoによって管理されているため、Goアプリやその他のアプリでは利用できません。

あなたのAPIを(Goやその他のものに実装されているかどうかに関係なく)保護する正しい方法は、APIのエンドポイントにトークンベースの認証を実装することです。役割ベースのアクセスが必要かどうかに応じて、アプリケーションごとまたはユーザーごとにトークンを要求/生成し、APIにアクセスするためにトークンを使用できます。