0

私の「REST API」では、トークンベース/クッキーベースの認証を使用したいと考えています。つまり、消費者が API を使用する前に、消費者はユーザー名/パスワードを使用して認証 URL を呼び出して、このトークンを取得する必要があります。

Set-Cookie ヘッダーを返すだけで問題ありませんか?

実際にはRESTの原則を破っていると思いますが、HTTP基本認証(すべてのリクエストでユーザー名/パスワードを送信することを意味します)なしでどのようにそれを行う(またはURIと動詞を設計する)のですか?

もしかしてこんな?

GET api/authentication/signin/?username=abc&pwd=123
GET api/authentication/signout

また?

GET    api/user/authtoken/?username=abc&pwd=123    (signin)
DELETE api/user/authtoken/     (signout)
GET    api/user/               (returning details of the current user)

じゃあ登録は?

POST    api/user/   (which would also return an authtoken)

また?

GET    api/user/abc/authtoken/?pwd=123    (signin of user abc)
DELETE api/user/abc/authtoken/     (signout)
GET    api/user/abc/               (returning details of user abc)
4

2 に答える 2

0

ユーザー名/パスワード認証には、HTTP基本認証を使用します

http://en.wikipedia.org/wiki/Basic_access_authentication

利点は、ほとんどのHTTPクライアントライブラリがすぐにサポートできることです。必要に応じて、より高度なメソッド(digest、oauthなど)が存在します。私は自分で発明しないようにし、クッキーを避けます。

于 2012-05-11T14:50:28.747 に答える
0

セッションをリソースとして扱います。

POST /sessions

セッションを作成し、Cookie を返します。

DELETE /sessions/:sessionid

クッキーを削除してログオフするには。

GET /session/:sessionid

セッションが有効かどうかを確認します (たとえば、Cookie が期限切れになっていないか、無効になっているなど)。

しかし、APIの残りの部分もCookieを介してセッションデータを使用できる一方で、標準のBasic Authまたはその他のスキームを実装し、カスタムセッションのものをそれを介して認証する必要があると思います。

于 2012-05-12T14:17:41.973 に答える