4

これは、remeber ヘッダーを応答に追加するために使用する現在の方法です。

@view_config(route_name='login', renderer='json', request_method='POST')
def post_login(request):
   ...
   ... authentication logic
   ...
   headers = remeber(request, login)
   return HTTPFound(location=came_from, headers=headers)

しかし、私の js は応答 {successful: True, message: 'auth OK'} を待っています。HTTPFound は came_from にリダイレクトします。jsリダイレクトが欲しい

だから私はこれを試しました

@view_config(route_name='login', renderer='json', request_method='POST')
def post_login(request):
   ...
   ... authentication logic
   ...
   return { 'successful': True, 'message': 'auth OK'}

しかし、remeber ヘッダーが応答に追加されることはないため、moooon の反対側で認証されることはありません。

私の質問は、jsonレンダラーを使用してこれらのremeberヘッダーを追加する方法ですか?

4

1 に答える 1

11

Pyramid マニュアルの「レンダリングされた応答の可変属性」セクションに記載されているように、その情報を応答に直接設定できます。

@view_config(route_name='login', renderer='json', request_method='POST')
def post_login(request):
   ...
   ... authentication logic
   ...
   headers = remeber(request, login)
   request.response.headerlist.extend(headers)
   return { 'successful': True, 'message': 'auth OK'}
于 2013-02-17T21:25:40.593 に答える