6
6
import hmac , base64 , hashlib , binascii , os
7
7
import shopify
8
8
9
- def _return_address (request ):
10
- return request .session .get ('return_to' ) or reverse ('root_path' )
11
-
12
- def _shop (request ):
13
- shop_url = request .GET .get ('shop' , request .POST .get ('shop' ))
14
- if not shop_url :
15
- messages .error (request , "A shop param is required" )
16
- return redirect (reverse (login ))
17
- return shop_url .strip ()
18
-
19
9
def _new_session (shop_url ):
20
10
api_version = apps .get_app_config ('shopify_app' ).SHOPIFY_API_VERSION
21
11
return shopify .Session (shop_url , api_version )
@@ -29,7 +19,10 @@ def login(request):
29
19
return render (request , 'shopify_app/login.html' , {})
30
20
31
21
def authenticate (request ):
32
- shop_url = _shop (request )
22
+ shop_url = request .GET .get ('shop' , request .POST .get ('shop' )).strip ()
23
+ if not shop_url :
24
+ messages .error (request , "A shop param is required" )
25
+ return redirect (reverse (login ))
33
26
scope = apps .get_app_config ('shopify_app' ).SHOPIFY_API_SCOPE
34
27
redirect_uri = request .build_absolute_uri (reverse (finalize ))
35
28
state = binascii .b2a_hex (os .urandom (15 )).decode ("utf-8" )
@@ -58,7 +51,7 @@ def finalize(request):
58
51
return redirect (reverse (login ))
59
52
60
53
try :
61
- shop_url = _shop ( request )
54
+ shop_url = params [ 'shop' ]
62
55
session = _new_session (shop_url )
63
56
request .session ['shopify' ] = {
64
57
"shop_url" : shop_url ,
@@ -69,7 +62,7 @@ def finalize(request):
69
62
return redirect (reverse (login ))
70
63
messages .info (request , "Logged in to shopify store." )
71
64
request .session .pop ('return_to' , None )
72
- return redirect (_return_address ( request ))
65
+ return redirect (request . session . get ( 'return_to' , reverse ( 'root_path' ) ))
73
66
74
67
def logout (request ):
75
68
request .session .pop ('shopify' , None )
0 commit comments