odoo 自定義外部登錄訪問接口。返回session

經常有外部系統請求odoo的數據,且需要身份認證。
這時候我門可以自己造一個登錄接口。驗證成功則返回odoo生成的session


    @http.route('/web/login/outapi', type='http', auth="none", csrf=False)
    def web_login_outapi(self, redirect=None, **kw):
        ensure_db()
        if request.httprequest.method == 'POST':
            old_uid = request.uid
            try:
                uid = request.session.authenticate(
                    request.session.db, request.params['login'], request.params['password'])
                return json.dumps({'status': 'success', 'code': 200, 'session_id': request.session.sid})
            except odoo.exceptions.AccessDenied as e:
                 return json.dumps({'status': 'success', 'code': 404, 'msg': "用戶名或密碼錯誤"})
        else:
            return json.dumps({'status': 'faild', 'code': 400, 'msg': '請求方式非Post,拒絕請求'})

當我拿到session 之後 就可以直接用session去請求odoo內的任何方法。

請求的時候 在請求header 加上參數

 headers = {'X-Openerp-Session-Id': session_id}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章