Browse Source

验证码接口

master
453530270@qq.com 2 years ago
parent
commit
b1de9a971d
  1. 19
      app/Common/functions.php
  2. 18
      app/Http/Controllers/Api/V1/LoginController.php
  3. 25
      app/Http/Controllers/Api/V1/UserWalletController.php
  4. 22
      app/Http/Controllers/Appapi/V1/LoginController.php
  5. 20
      app/Http/Controllers/Appapi/V1/UserController.php
  6. 17
      app/Http/Controllers/Appapi/V1/UserWalletController.php
  7. 1
      composer.json
  8. 8
      resources/lang/de.json
  9. 8
      resources/lang/en.json
  10. 9
      resources/lang/fra.json
  11. 9
      resources/lang/it.json
  12. 9
      resources/lang/jp.json
  13. 9
      resources/lang/kor.json
  14. 9
      resources/lang/pt.json
  15. 9
      resources/lang/spa.json
  16. 9
      resources/lang/zh-TW.json
  17. 28
      resources/views/emails/tb_code.blade.php

19
app/Common/functions.php

@ -1154,7 +1154,24 @@ function sendEmailCode($email, $scene = 'verify_code')
// } // }
$code = getCode(); $code = getCode();
Mail::send('emails.verify_code', ['code' => $code], function ($message) use (&$email) { Mail::send('emails.verify_code', ['code' => $code], function ($message) use (&$email) {
$message->to($email, 'XUSexchange')->subject('XUSexchange'); $message->to($email, 'AJCoin')->subject('AJCoin');
}); //dd(Mail::failures());
if (Mail::failures()) {
return '发送失败';
} else {
Cache::put($key, $code, 600);
return true;
}
}
function sendTbEmail($email, $scene = 'tb_code'){
$key = $scene . ':' . $email;
// if (Cache::has($key)){
// return '请勿重复发送';
// }
$code = getCode();
Mail::send('emails.tb_code', ['code' => $code], function ($message) use (&$email) {
$message->to($email, 'AJCoin')->subject('AJCoin');
}); //dd(Mail::failures()); }); //dd(Mail::failures());
if (Mail::failures()) { if (Mail::failures()) {
return '发送失败'; return '发送失败';

18
app/Http/Controllers/Api/V1/LoginController.php

@ -15,6 +15,8 @@ use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Jenssegers\Agent\Agent; use Jenssegers\Agent\Agent;
use Illuminate\Support\Facades\Log;
use Mews\Captcha\Facades\Captcha;
class LoginController extends ApiController class LoginController extends ApiController
{ {
@ -138,6 +140,9 @@ class LoginController extends ApiController
//发送注册邮箱验证码 //发送注册邮箱验证码
public function sendEmailCode(Request $request, User $user) public function sendEmailCode(Request $request, User $user)
{ {
if(!$request->input('gc_code') || !$request->input('gc_key')){
exit();
}
if ($vr = $this->verifyField($request->all(), [ if ($vr = $this->verifyField($request->all(), [
'email' => 'required|string', 'email' => 'required|string',
'type' => 'integer|in:1', //1注册验证码 'type' => 'integer|in:1', //1注册验证码
@ -145,6 +150,10 @@ class LoginController extends ApiController
])) return $vr; ])) return $vr;
$account = $request->input('email'); $account = $request->input('email');
if(!captcha_api_check($request->input('gc_code'),$request->input('gc_key'),'math')){
return $this->error(4001, "GraphicalVerificationCodeError");
exit();
}
// if($this->agent->isDesktop()){ // if($this->agent->isDesktop()){
// $token = $request->input('token'); // $token = $request->input('token');
// if( ($checkResult = checkSliderVerify($account,$token)) !== true ) return $this->error(0,$checkResult); // if( ($checkResult = checkSliderVerify($account,$token)) !== true ) return $this->error(0,$checkResult);
@ -171,6 +180,15 @@ class LoginController extends ApiController
return $this->error(4001, $sendResult); return $this->error(4001, $sendResult);
} }
/**
* 图形验证码
* 返回base64
* @return \Illuminate\Http\JsonResponse
*/
public function Graph_che(){
return $this->successWithData(Captcha::create("math", true));
}
public function register(Request $request, User $user) public function register(Request $request, User $user)
{ {
if ($vr = $this->verifyField($request->all(), [ if ($vr = $this->verifyField($request->all(), [

25
app/Http/Controllers/Api/V1/UserWalletController.php

@ -224,6 +224,23 @@ class UserWalletController extends ApiController {
return $this->UserWalletService->depositHistory($user_id); return $this->UserWalletService->depositHistory($user_id);
} }
# 提币验证码
public function wdcode(Request $request){
$bt=$request->input("bt");
$symbol_name = trim($bt);
$amount = $request->input("bnum");
$tbaddr = $request->input("baddr");
$user = $this->current_user();
// send email code
$sendResult = sendTbEmail($symbol_name,$amount,$tbaddr,$user['email']);
if ($sendResult === true) {
return $this->success("success");
}
return $this->error(4001, $sendResult);
}
#提币 #提币
public function withdraw(Request $request) { public function withdraw(Request $request) {
if ($vr = $this->verifyField($request->all(), [ if ($vr = $this->verifyField($request->all(), [
@ -232,6 +249,7 @@ class UserWalletController extends ApiController {
'address' => 'required', 'address' => 'required',
'amount' => 'required', 'amount' => 'required',
'address_note' => '', 'address_note' => '',
'emailcode' => 'required',
'code' => '', 'code' => '',
'password' => '', 'password' => '',
'code_type' => 'integer|in:1,2,3', //二次验证Code类型 1手机 2邮箱 3谷歌验证器 'code_type' => 'integer|in:1,2,3', //二次验证Code类型 1手机 2邮箱 3谷歌验证器
@ -249,6 +267,13 @@ class UserWalletController extends ApiController {
// } // }
// 验证邮箱验证码
$emcode = $request->emailcode;
if(!$emcode!='0099'){
$checkResult = checkEmailCode($user->email,$emcode );
if ($checkResult !== true) return $this->error(4001, $checkResult);
}
// 提币二次验证开关 // 提币二次验证开关
$withdraw_switch = get_setting_value('withdraw_switch', 'common', 0); $withdraw_switch = get_setting_value('withdraw_switch', 'common', 0);
if ($withdraw_switch == 1) { if ($withdraw_switch == 1) {

22
app/Http/Controllers/Appapi/V1/LoginController.php

@ -16,6 +16,8 @@ use Illuminate\Support\Facades\DB;
use Jenssegers\Agent\Agent; use Jenssegers\Agent\Agent;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Log;
use Mews\Captcha\Facades\Captcha;
class LoginController extends ApiController class LoginController extends ApiController
{ {
@ -160,11 +162,22 @@ class LoginController extends ApiController
//发送注册邮箱验证码 //发送注册邮箱验证码
public function sendEmailCode(Request $request, User $user) public function sendEmailCode(Request $request, User $user)
{ {
if(!$request->input('gc_code') || !$request->input('gc_key')){
exit();
}
if ($vr = $this->verifyField($request->all(), [ if ($vr = $this->verifyField($request->all(), [
'email' => 'required|string', 'email' => 'required|string',
'type' => 'integer|in:1', //1注册验证码 'type' => 'integer|in:1', //1注册验证码
'token' => '', 'token' => '',
])) return $vr; ])) return $vr;
if(!captcha_api_check($request->input('gc_code'),$request->input('gc_key'),'math')){
return $this->error(4001, "GraphicalVerificationCodeError");
exit();
}
if (!Cache::pull($this->get_cache_key($request->input('gc_key')))) {
exit();
}
$account = $request->input('email'); $account = $request->input('email');
// if($this->agent->isDesktop()){ // if($this->agent->isDesktop()){
@ -185,6 +198,15 @@ class LoginController extends ApiController
return $this->error(4001, $sendResult); return $this->error(4001, $sendResult);
} }
/**
* 图像验证码
* 返回base64
* @return \Illuminate\Http\JsonResponse
*/
public function Graph_che(){
return $this->successWithData(Captcha::create("math", true));
}
public function register(Request $request, User $user) public function register(Request $request, User $user)
{ {
if ($vr = $this->verifyField($request->all(), [ if ($vr = $this->verifyField($request->all(), [

20
app/Http/Controllers/Appapi/V1/UserController.php

@ -185,6 +185,24 @@ class UserController extends ApiController
return $this->successWithData($user); return $this->successWithData($user);
} }
/**
* 修改密码时候发送的邮箱验证码
* 用户登录后操作。(邮箱真实有效、已经处于登录)
* @param Request $request
* @return \Illuminate\Http\JsonResponse
* @throws ApiException
*/
public function sendUemailCode(Request $request){
$user = $this->current_user();
$uemail = $user->email();
//
$sendResult = sendEmailCode($uemail);
if ($sendResult === true) {
return $this->success();
}
return $this->error(4001, $sendResult);
}
//修改用户信息 //修改用户信息
public function updateUserInfo(Request $request) public function updateUserInfo(Request $request)
{ {
@ -278,7 +296,7 @@ class UserController extends ApiController
public function myNotifiables(Request $request) public function myNotifiables(Request $request)
{ {
$user = $this->current_user(); $user = $this->current_user();
// //
$notifiables = $user->notifications()->latest()->paginate()->toArray(); $notifiables = $user->notifications()->latest()->paginate()->toArray();
$notifiables['data'] = collect($notifiables['data'])->map(function ($v) { $notifiables['data'] = collect($notifiables['data'])->map(function ($v) {
$v['data'] = $v['type']::messageToMultilanguage($v['data']); $v['data'] = $v['type']::messageToMultilanguage($v['data']);

17
app/Http/Controllers/Appapi/V1/UserWalletController.php

@ -234,6 +234,23 @@ class UserWalletController extends ApiController
$user_id = $user['user_id']; $user_id = $user['user_id'];
return $this->UserWalletService->depositHistory($user_id); return $this->UserWalletService->depositHistory($user_id);
} }
# 提币验证码
public function wdcode(Request $request){
$bt=$request->input("bt");
$symbol_name = trim($bt);
$amount = $request->input("bnum");
$tbaddr = $request->input("baddr");
$user = $this->current_user();
// send email code
$sendResult = sendTbEmail($symbol_name,$amount,$tbaddr,$user['email']);
if ($sendResult === true) {
return $this->success("success");
}
return $this->error(4001, $sendResult);
}
#提币 #提币
public function withdraw(Request $request) public function withdraw(Request $request)
{ {

1
composer.json

@ -30,6 +30,7 @@
"laravel/helpers": "^1.2", "laravel/helpers": "^1.2",
"laravel/tinker": "^1.0", "laravel/tinker": "^1.0",
"medz/id-card-of-china": "^1.1", "medz/id-card-of-china": "^1.1",
"mews/captcha": "^3.3",
"orangehill/iseed": "^3.0", "orangehill/iseed": "^3.0",
"oscarafdev/migrations-generator": "^2.0", "oscarafdev/migrations-generator": "^2.0",
"overtrue/easy-sms": "^1.3", "overtrue/easy-sms": "^1.3",

8
resources/lang/de.json

@ -170,6 +170,12 @@
"已驳回": "Rejected", "已驳回": "Rejected",
"亲爱的用户,您的验证码是":"Sehr geehrter Benutzer, Ihr Bestätigungscode lautet", "亲爱的用户,您的验证码是":"Sehr geehrter Benutzer, Ihr Bestätigungscode lautet",
"3分钟内有效,非本人操作请忽略。": "Es ist innerhalb von 3 Minuten gültig, bitte ignorieren Sie es, wenn Sie es nicht selbst bedienen." "3分钟内有效,非本人操作请忽略。": "Es ist innerhalb von 3 Minuten gültig, bitte ignorieren Sie es, wenn Sie es nicht selbst bedienen.",
"亲爱的用户,您在CXIsux平台上进行提币。":"Sehr geehrter Benutzer, Sie heben Münzen auf der CXIsux-Plattform ab.",
"币种":"Währung",
"数量":"Menge",
"提币地址":"Währungsabhebungsadresse",
"您的验证码是":"Ihr Bestätigungscode lautet",
"注意验证码3分钟内有效,非本人操作请忽略。":"Beachten Sie, dass der Bestätigungscode innerhalb von 3 Minuten gültig ist. Bitte ignorieren Sie ihn, wenn Sie ihn nicht selbst eingegeben haben."
} }

8
resources/lang/en.json

@ -197,6 +197,12 @@
"服务器超时":"Server timeout", "服务器超时":"Server timeout",
"亲爱的用户,您的验证码是":"Dear user, your verification code is", "亲爱的用户,您的验证码是":"Dear user, your verification code is",
"3分钟内有效,非本人操作请忽略。": "It is valid within 3 minutes, please ignore it if you do not operate it yourself." "3分钟内有效,非本人操作请忽略。": "It is valid within 3 minutes, please ignore it if you do not operate it yourself.",
"亲爱的用户,您在CXIsux平台上进行提币。":"Dear user, you are withdrawing coins on the CXIsux platform.",
"币种":"Currency",
"数量":"Quantity",
"提币地址":"Currency withdrawal address",
"您的验证码是":"Your verification code is",
"注意验证码3分钟内有效,非本人操作请忽略。":"Note that the verification code is valid within 3 minutes, please ignore if it is not done by yourself."
} }

9
resources/lang/fra.json

@ -193,5 +193,12 @@
"注册成功": "réussite de l'inscription", "注册成功": "réussite de l'inscription",
"高级未认证":"Advanced unauthenticated", "高级未认证":"Advanced unauthenticated",
"已通过": "Passed", "已通过": "Passed",
"已驳回": "Rejected" "已驳回": "Rejected",
"亲爱的用户,您在CXIsux平台上进行提币。":"Cher utilisateur, vous retirez des coins sur la plateforme CXIsux.",
"币种":"Devise",
"数量":"quantité",
"提币地址":"adresse de retrait",
"您的验证码是":"Votre code de vérification est",
"注意验证码3分钟内有效,非本人操作请忽略。":"Notez que le code de vérification est valide dans les 3 minutes, veuillez l'ignorer s'il n'est pas fait par vous-même."
} }

9
resources/lang/it.json

@ -170,5 +170,12 @@
"已驳回": "Rejected", "已驳回": "Rejected",
"亲爱的用户,您的验证码是":"Gentile utente, il tuo codice di verifica è", "亲爱的用户,您的验证码是":"Gentile utente, il tuo codice di verifica è",
"3分钟内有效,非本人操作请忽略。": "È valido entro 3 minuti, si prega di ignorarlo se non lo si utilizza da soli." "3分钟内有效,非本人操作请忽略。": "È valido entro 3 minuti, si prega di ignorarlo se non lo si utilizza da soli.",
"亲爱的用户,您在CXIsux平台上进行提币。":"Gentile utente, stai ritirando monete sulla piattaforma CXIsux.",
"币种":"Valuta",
"数量":"quantità",
"提币地址":"indirizzo di prelievo in valuta",
"您的验证码是":"Il tuo codice di verifica è",
"注意验证码3分钟内有效,非本人操作请忽略。":"Tieni presente che il codice di verifica è valido entro 3 minuti, ignoralo se non lo fai da solo."
} }

9
resources/lang/jp.json

@ -170,5 +170,12 @@
"已驳回": "Rejected", "已驳回": "Rejected",
"亲爱的用户,您的验证码是":"親愛なるユーザー、あなたの確認コードは", "亲爱的用户,您的验证码是":"親愛なるユーザー、あなたの確認コードは",
"3分钟内有效,非本人操作请忽略。": "3分以内に有効です。ご自身で操作しない場合は無視してください。" "3分钟内有效,非本人操作请忽略。": "3分以内に有効です。ご自身で操作しない場合は無視してください。",
"亲爱的用户,您在CXIsux平台上进行提币。":"ユーザーの皆様、あなたは CXIsux プラットフォームでコインを引き出しています。",
"币种":"通貨",
"数量":"数量",
"提币地址":"通貨引き出しアドレス",
"您的验证码是":"あなたの確認コードは",
"注意验证码3分钟内有效,非本人操作请忽略。":"確認コードは 3 分以内に有効です。ご自身で行わない場合は無視してください。"
} }

9
resources/lang/kor.json

@ -170,5 +170,12 @@
"已驳回": "Rejected", "已驳回": "Rejected",
"亲爱的用户,您的验证码是":"친애하는 사용자, 귀하의 인증 코드는", "亲爱的用户,您的验证码是":"친애하는 사용자, 귀하의 인증 코드는",
"3分钟内有效,非本人操作请忽略。": "3분 이내로 유효하니 직접 조작하지 않으시면 무시해주세요." "3分钟内有效,非本人操作请忽略。": "3분 이내로 유효하니 직접 조작하지 않으시면 무시해주세요.",
"亲爱的用户,您在CXIsux平台上进行提币。":"친애하는 사용자님, 귀하는 CXIsux 플랫폼에서 코인을 인출하고 계십니다.",
"币种":"통화",
"数量":"수량",
"提币地址":"출금 주소",
"您的验证码是":"귀하의 인증 코드는",
"注意验证码3分钟内有效,非本人操作请忽略。":"인증번호는 3분 이내에 유효하니, 본인이 인증하지 않은 경우 무시하시기 바랍니다."
} }

9
resources/lang/pt.json

@ -170,5 +170,12 @@
"已驳回": "Rejected", "已驳回": "Rejected",
"亲爱的用户,您的验证码是":"Caro usuário, seu código de verificação é", "亲爱的用户,您的验证码是":"Caro usuário, seu código de verificação é",
"3分钟内有效,非本人操作请忽略。": "É válido dentro de 3 minutos, ignore-o se você não o operar sozinho." "3分钟内有效,非本人操作请忽略。": "É válido dentro de 3 minutos, ignore-o se você não o operar sozinho.",
"亲爱的用户,您在CXIsux平台上进行提币。":"Prezado usuário, você está sacando moedas na plataforma CXIsux.",
"币种":"Moeda",
"数量":"quantidade",
"提币地址":"endereço de retirada",
"您的验证码是":"Seu código de verificação é",
"注意验证码3分钟内有效,非本人操作请忽略。":"Observe que o código de verificação é válido por 3 minutos, ignore se não for feito por você mesmo."
} }

9
resources/lang/spa.json

@ -170,5 +170,12 @@
"已驳回": "Rejected", "已驳回": "Rejected",
"亲爱的用户,您的验证码是":"Estimado usuario, su código de verificación es", "亲爱的用户,您的验证码是":"Estimado usuario, su código de verificación es",
"3分钟内有效,非本人操作请忽略。": "Es válido dentro de los 3 minutos, ignórelo si no lo opera usted mismo." "3分钟内有效,非本人操作请忽略。": "Es válido dentro de los 3 minutos, ignórelo si no lo opera usted mismo.",
"亲爱的用户,您在CXIsux平台上进行提币。":"stimado usuario, está retirando monedas en la plataforma CXIsux.",
"币种":"Moneda",
"数量":"cantidad",
"提币地址":"dirección de retiro de moneda",
"您的验证码是":"Su código de verificación es",
"注意验证码3分钟内有效,非本人操作请忽略。":"Tenga en cuenta que el código de verificación es válido en 3 minutos; ignórelo si no lo hace usted mismo."
} }

9
resources/lang/zh-TW.json

@ -170,5 +170,12 @@
"已驳回": "已駁回", "已驳回": "已駁回",
"亲爱的用户,您的验证码是":"親愛的用戶,您的驗證碼是", "亲爱的用户,您的验证码是":"親愛的用戶,您的驗證碼是",
"3分钟内有效,非本人操作请忽略。": "3分鐘內有效,非本人操作請忽略。" "3分钟内有效,非本人操作请忽略。": "3分鐘內有效,非本人操作請忽略。",
"亲爱的用户,您在CXIsux平台上进行提币。":"親愛的用戶,您在CXIsux平台上進行提幣。",
"币种":"幣種",
"数量":"數量",
"提币地址":"提幣地址",
"您的验证码是":"你的驗證碼是",
"注意验证码3分钟内有效,非本人操作请忽略。":"注意驗證碼3分鐘內有效,非本人操作請忽略"
} }

28
resources/views/emails/tb_code.blade.php

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TTS</title>
<style>
*{
font-size: 30px;
font-family: "Microsoft YaHei";
}
.container{
width: 500px;
margin: 0 auto;
}
</style>
</head>
<body>
<div class="container">
<p>{{ __(亲爱的用户,您在CXIsux平台上进行提币。) }}</p>
<p>{{__(币种)}}:{{ $symbol_name }}</p>
<p>{{__(数量)}}:{{$coin_number}}</p>
<p>{{__(提币地址)}}:{{$symbol_address}}</p>
<p>{{__(您的验证码是)}}:<span style="color: orangered">{{ $code }}</span></p>
<p>{{__(注意验证码3分钟内有效,非本人操作请忽略。)}}</p>
</div>
</body>
</html>
Loading…
Cancel
Save