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}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章