반응형
[Django] 파이썬 장고 salesforce 로그인 연동 _simple_salesforce
# simple_salesforce 세일즈포스 로그인 라이브러리 예제
■ simple_salesforce 라이브러리 설치
pip install simple-salesforce |
■ simple_salesforce import
from simple_salesforce import Salesforce |
■ 파이썬 소스코드
# 세일즈포스 로그인 확인 및 정보 가져오기
1. 웹에서 넘어온 id, pw를 Salesforce 메소드에 넘겨준다. 이때 세일즈포스의 Org ID도 함께 넘겨줍니다.
2. 그럼 sf에 담긴 정보를 query를 통해 원하는 데이터를 가져올 수 있습니다.
-> 세일즈포스 로그인이 실패하면 즉, 없는 정보로 로그인하면 Exception이 떨어집니다.
# 리턴받은 데이터 파싱하기
# 리턴받은 데이터를 기반으로 로그인 및 유저 테이블 INSERT
1. 파싱된 정보로 장고 user테이블에 넣어주고 로그인을 시켜줍니다.
2. Exception에 대해서도 처리해줍니다.
■ 최종 소스코드
data = json.loads(request.body)
_id = data['id'] # 웹에서 넘어온 로그인정보 ID
_pw = data['pw'] # 웹에서 넘어온 로그인정보 PW
try:
# password, username, salesforce의 ORG ID를 넣어준다.
sf = Salesforce(password=_pw, username=_id, organizationId='00D5j00123')
# SQL로 where 조건에 ID를 걸어서 원하는 정보를 가져온다.
query_result = sf.query(
"select id, username, firstname, lastname, Title FROM user WHERE username ='" + _id + "'")
for key, val in query_result.items(): # OrderedDict 형태
if str(key) == "records": # key : records 안에 리턴값 존재
for _key, _val in val[0].items(): # OrderedDict 형태
if _key == "Id":
sfdc_id = _val
if _key == "Username":
username = _val
if _key == "FirstName":
first_name = _val
if _key == "LastName":
last_name = _val
if _key == "Title":
title = _val
# 로그인 유저 정보에 넣어준다.
user = get_user_model()
user_create = User.objects.create_user(
username=username, password=_pw, email=_id, last_name=last_name, first_name=first_name
)
# 세일즈 포스 로그인이 확인되면 로그인 성공
auth.login(request, user_create)
return_data = {
'status': '200',
'proc': 'success',
}
except Exception as e:
return_data = {
'proc': 'fail',
}
return JsonResponse(return_data)
파이썬 장고 세일즈포스 로그인 연동가능한 라이브러리 예제입니다.
장고 simple-salesforce에 대해서 안되는 부분이 있으시면 댓글남겨주세요~
반응형
'heroku & salesforce' 카테고리의 다른 글
[heroku] Django static 깨짐 현상 & WHITENOISE 설정 (0) | 2022.06.03 |
---|---|
[heroku] Auth0 카카오 로그인 연동하기 _Auth0 Social Login (0) | 2022.05.18 |
[Salesforce APEX] 쿼리에서 BillingAddress 에러_ No such column (0) | 2022.04.29 |
[SalesForce + lwc ] loadScript 사용해서 외부 스크립트 함수 가져오기 (0) | 2022.04.28 |
[heroku] Salesforce와 DB 연동하기 / heroku salesforce mapping (0) | 2022.04.21 |
댓글