...
|
...
|
@@ -224,10 +224,10 @@ class DataManager(BlueprintApi): |
224
|
224
|
@bp.route("/oa", methods=["GET"])
|
225
|
225
|
def oa_authorization():
|
226
|
226
|
client = oauth2.WebApplicationClient(
|
227
|
|
- configure.OA_OAUTH["client_id"])
|
|
227
|
+ configure.OA["client_id"])
|
228
|
228
|
state = client.state_generator()
|
229
|
229
|
auth_uri = client.prepare_request_uri(
|
230
|
|
- configure.OA_OAUTH["authorization_endpoint"], configure.OA_OAUTH["redirect_uri"], configure.OA_OAUTH["scope"], state)
|
|
230
|
+ configure.OA["authorization_endpoint"], configure.OA["redirect_uri"], configure.OA["scope"], state)
|
231
|
231
|
session["oauth_state"] = state
|
232
|
232
|
return redirect(auth_uri)
|
233
|
233
|
|
...
|
...
|
@@ -239,7 +239,7 @@ class DataManager(BlueprintApi): |
239
|
239
|
def oa_callback():
|
240
|
240
|
|
241
|
241
|
client = oauth2.WebApplicationClient(
|
242
|
|
- configure.OA_OAUTH["client_id"])
|
|
242
|
+ configure.OA["client_id"])
|
243
|
243
|
|
244
|
244
|
# 获取code
|
245
|
245
|
code = client.parse_request_uri_response(
|
...
|
...
|
@@ -250,9 +250,9 @@ class DataManager(BlueprintApi): |
250
|
250
|
|
251
|
251
|
# 获取token
|
252
|
252
|
body = client.prepare_request_body(
|
253
|
|
- code, redirect_uri=configure.OA_OAUTH["redirect_uri"], client_secret=configure.OA_OAUTH["client_secret"])
|
|
253
|
+ code, redirect_uri=configure.OA["redirect_uri"], client_secret=configure.OA["client_secret"])
|
254
|
254
|
|
255
|
|
- r = requests.post(configure.OA_OAUTH["token_endpoint"], body, headers={
|
|
255
|
+ r = requests.post(configure.OA["token_endpoint"], body, headers={
|
256
|
256
|
"Content-Type": "application/x-www-form-urlencoded"})
|
257
|
257
|
|
258
|
258
|
tokeninfo = r.json()
|
...
|
...
|
@@ -260,7 +260,7 @@ class DataManager(BlueprintApi): |
260
|
260
|
|
261
|
261
|
if access_token:
|
262
|
262
|
# 获取用户信息
|
263
|
|
- userinfo_url = configure.OA_OAUTH["userinfo_endpoint"]
|
|
263
|
+ userinfo_url = configure.OA["userinfo_endpoint"]
|
264
|
264
|
user_request = requests.get(userinfo_url, headers={
|
265
|
265
|
"Authorization": "Bearer %s" % access_token})
|
266
|
266
|
userinfo = user_request.json()
|
...
|
...
|
@@ -277,7 +277,7 @@ class DataManager(BlueprintApi): |
277
|
277
|
# 用户不存在,创建用户
|
278
|
278
|
if not user:
|
279
|
279
|
user = User(username=user_name, password=SM3.encode('DMap@123'), role='dataman',
|
280
|
|
- phone='', company='', position='', email='',
|
|
280
|
+ phone='', company='', position='', email='',
|
281
|
281
|
create_time=time.strftime(
|
282
|
282
|
"%Y-%m-%d %H:%M:%S", time.localtime()),
|
283
|
283
|
update_time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
|
...
|
...
|
@@ -286,10 +286,10 @@ class DataManager(BlueprintApi): |
286
|
286
|
|
287
|
287
|
# dmap token授权
|
288
|
288
|
session["id"] = user.id
|
289
|
|
-
|
|
289
|
+
|
290
|
290
|
# 存入数据库
|
291
|
291
|
token = OAuth2Token(
|
292
|
|
- client_id=configure.OA_OAUTH["client_id"],
|
|
292
|
+ client_id=configure.OA["client_id"],
|
293
|
293
|
token_type=tokeninfo.get("token_type"),
|
294
|
294
|
access_token=access_token,
|
295
|
295
|
scope=tokeninfo.get("scope"),
|
...
|
...
|
@@ -298,14 +298,17 @@ class DataManager(BlueprintApi): |
298
|
298
|
)
|
299
|
299
|
db.session.add(token)
|
300
|
300
|
db.session.commit()
|
|
301
|
+ redirect_uri = ""
|
|
302
|
+ try:
|
|
303
|
+ redirect_uri = session["redirect_uri"]
|
|
304
|
+ if not redirect_uri:
|
|
305
|
+ redirect_uri = '/'
|
|
306
|
+ except:
|
|
307
|
+ redirect_uri = "/"
|
301
|
308
|
|
302
|
|
- redirect_uri = session["redirect_uri"]
|
303
|
|
- if not redirect_uri:
|
304
|
|
- redirect_uri = '/'
|
305
|
|
-
|
306
|
309
|
response = make_response(redirect(redirect_uri))
|
307
|
|
- response.set_cookie('accessToken', access_token,max_age=604_800)
|
308
|
|
-
|
|
310
|
+ response.set_cookie('accessToken', access_token, max_age=604_800)
|
|
311
|
+
|
309
|
312
|
return response
|
310
|
313
|
else:
|
311
|
314
|
return redirect('/') |
...
|
...
|
|