master
Drfelfel 2021-06-03 21:24:15 +04:30
parent e934347fb6
commit 5532f0bd6a
2 changed files with 206 additions and 47 deletions

251
README.md
View File

@ -1,74 +1,233 @@
# فریم ورک ابری رای کانکت
رای کانکت یک فریم ورک ابری هست ، یعنی بسیاری از ابزار های مورد نیاز شما رو در بستر یک فضای ابری بهتون ارائه میکنه
و شما به وسیله اون میتونید مدیریت کاملی بر کاربرانتون و کنترل دسترسی کاربرانتون و هزار و یک چیز داشته باشید
حتی توابع بلادرنگ (ریل تایم)
# Rayconnect Client
Offical client of rayconnect server
کلاینت رسمی رای کانکت در زبان جاوا اسکریپت راه ارتباطی شما با این فریم ورک ابری هست
# install
جهت نصب و راه اندازی رای کانکت میتونید از دستور زیر استفاده کنید
```sh
npm install rayconnect-client --save
```
# create rayconnect app (ساخت اپ رای کانکتی)
برای کاربران فارسی زبان :)
اگه میخواید یک اپ رای کانکتی بسازید شما باید پارتنر رای کانکت باشید
اما ما یک سرور موقتی رای کانکت ایجاد کردیم
که میتونید باهاش تمرین کنید و اپ رای کانکتی بسازید
به زودی نسخه رسمی رایکانکت در ایران ارائه میشه و میتونید از طریق پنل مدیریت برنامه هاتون رو بسازید
اما تا اون موقع از لینک زیر اقدام کنید :
https://rayconnect-felfel.fandogh.cloud
# create rayconnect app
قبل از هر چیزی بهتره یک اپ رای کانکتی بسازید که میتونید از لینک زیر برای ساخت اپتون استفاده کنید
https://account.http-gateway.ir
بعد از ساخته شدن اپ بهتون نام کاربری و کلمه عبور داده میشه که باید در ادامه مراحل از اون استفاده کنید
# connect to rayconnect
برای ساخت یک پروژه رای کانکتی باید از روی رای کانکت یک اینستنس جدید بسازید
اسکوپ ها در واقع قسمت های مختلفی هستند که برنامه شما میتونند داشته باشند مثل قسمت کاربران - مطالب و ...
که به سادگی میتونید هر اسمی براشون بزارید
appID رو در هنگام ثبت اکانت خودتون انتخاب میکنید
و اسپیس میتونه در حالت مین یا دیباگ مورد استفاده قرار بگیره
در نهایت تایپ هم برای اینه که مشخص کنه چیزی که شما نوشتید در حال سرویس دادنه یا سرویس گرفتن
```ts
const rayconnect = new Rayconnect({
scopes: 'SCOPE_NAME',
appID: 'APP_ID',
space: 'main',
type: 'client or micros'
}, "static token or undefined", true);
scopes: 'SCOPE_NAME', // example : chats,apps,users
appID: 'APP_ID', // your app id from registration process
space: 'main', // main or debug
type: 'client or micros' // micros for server and client for browsers (or cli client)
});
```
# get data(token and other data) for guest
#
تابع زیر یک تابع ضروری و مهم است که نشون میده رای کانکت کانکت شده یا نه :)
```ts
rayconnect.OnConnect(async () => {
await rayconnect.Guest()
.then((data)=>{
// data of guest
})
await app.GetUserAccess({
username:"ACCOUNT_USERNAME",
password:"ACCOUNT_PASSWORD"
})
})
```
# توابع
# auth with token
مثل هر فریم ورک دیگری شما باید توابعتون رو تعریف کنید که اتفاقا کار خیلی ساده ای هست
```ts
app.Query({
address:"one",
method:"GET",
scope:"blog"
}, (res)=>{
res.send({
status:true,
message:"کاربر عزیر به بخش مطالب وبلاگ خوش آمدید",
posts:[
{
id:1,
title:"hello",
content:"world"
}
]
})
})
```
تابعی که در بالا تعریف شده یک تابع ساده هست که مطالب وبلاگ رو بر میگردونه
دقت کنید اسکوپی که در تابع استفاده میکنید حتما باید به هنگام ساختن اینستنس رایکانکت مشخص شده باشه
# ساخت کاربر جدید
دقت کنید ساخت کاربر جدید یا باید در رویداد
OnConnect
صورت بگیرد
یا باید بعد از کانکت شدن به صورت کامل باشد :)
جهت ساخت یک کاربر جدید میتوان از کد زیر استفاده کرد
```ts
await app.addUser({
username:"demo",
password:"demodemo"
})
```
# احراز هویت با کاربر
با تابع احراز هویت از قبل اشنایی دارید
که به شکل زیر است
```ts
await app.GetUserAccess({
username:"ACCOUNT_USERNAME",
password:"ACCOUNT_PASSWORD"
})
```
# استفاده از رای کانکت در مرورگر
خب حالا برای اینکه با تابع بالا ارتباط برقرار کنیم میخوایم رای کانکت رو در مرورگر هم فعال کنیم :)
فرض میکنیم شما یک فایل به نام index.html
دارید
```html
<script src="https://cdn.jsdelivr.net/npm/rayconnect-client@latest/dist/browser/bundle.js"><script>
```
بعد از لود کردن بقیه مراحل مثل قبل هست :)
# استفاده از اکانت مهمان
بعد از اینکه رای کانکت رو در مرورگر لود کردید ممکنه بخواید به کاربران مهمان اجازه بدید به برخی چیز ها دسترسی داشته باشند
که کافیه به شکل زیر عمل کنید
```ts
rayconnect.OnConnect(async () => {
await app.GetGuestAccess({})
})
```
نکته : توجه کنید نباید اطلاعات مدیریتی و یوزر نیم پسورد اصلی برنامه را در مرورگر به کار ببرید
# استفاده از اکانت
گاهی اوقات هم ممکنه دوست داشته باشید
یک صفحه لاگین خوشگل طراحی کنید که کاربرانتون با یوزری که براشون ساختید لاگین کنند
که باید به شکل زیر عمل کنید
```ts
rayconnect.OnConnect(() => {
rayconnect.Auth(process.env.APP_AUTH)
})
await app.GetUserAccess({
username:"ACCOUNT_USERNAME",
password:"ACCOUNT_PASSWORD"
})
```
# exec query
نکته : توجه کنید نباید اطلاعات مدیریتی و یوزر نیم پسورد اصلی برنامه را در مرورگر به کار ببرید
use this method for execute query
method can be any string
``` js
rayconnect.execQuery({
scope: 'your scope name',
uniqueID: 'UNIQUE_ID',
TokenID: 'TOKEN_ID',
address: 'ADDRESS',
info: {
method: 'METHOD',
data: {}
}
})
# کنترل دسترسی
رای کانکت به صورت دیفالت دسترسی کلیه کاربران را محدود میکند و هیچ کاربری به هیچ جایی دسترسی ندارد
که میتوانید با روش زیر به کاربران دسترسی بدهید
## مثال کاربران مهمان
```ts
await app.changePermissions({
address: "one",
method: "GET",
mode: "add",
scope: "blog",
uid: "guest",
});
```
# on query
on receive query
``` ts
rayconnect.Query({
scope: 'your scope name',
address: 'any address you defined',
method: 'any method like DO GET POST DELETE RECEIVE ETC'
}, async (data) => {
کد بالا دسترسی مربوطه به تابع نوشته شده در قبل را به همه کاربران میدهد
})
در بخش uid
میتوانید از * به معنای همه کاربران به جز مهمان ها و
guest
به معنای همه کاربران و مهمان ها
و یا یک uid
مشخص یعنی نام کاربری یک کاربر خاص استفاده کنید
## مثال کاربر
```ts
await app.changePermissions({
address: "one",
method: "POST",
mode: "add",
scope: "blog",
uid: "demo",
});
```
## مثال همه کاربران به غیر از مهمان
```ts
await app.changePermissions({
address: "one",
method: "POST",
mode: "add",
scope: "blog",
uid: "*",
});
```
# اجرای یک تابع
خب حالا فرض کنید قراره تابعی که نوشتیم رو اجرا کنیم
و در مرورگر اطلاعات رو نشون بدیم :)
```ts
const result = await app.Run({
address:"one",
scope:"blog",
method:"GET",
data:{}
})
console.log(result)
```
به همین سادگی
# اجرای توابع به وسیله http
رای کانکت یک مزیت خیلی خوب داره و اونم اینه که اتوماتیک براتون وب سرویس میسازه
اما قبلش شما باید یک توکن ارائه کنید
تابع
LoginWithPassword
بعد از دریافت یوزر نیم و پسورد یک توکن در اختیار شما قرار میدهد
اما شما میتوانید به سادگی یک توکن مهمان دریافت کنید
## دریافت توکن مهمان
https://s1.iranserver1.rayconnect.ir/api/v2/guest?aid=آیدی_اپ
## دسترسی به تابع با توکن مهمان
چون تابع تعریف شده از نوع GET
میباشد میتوانید آن را در مرورگر خود مشاهده کنید
https://http-gateway.ir/api/v1/restful/run/آیدی_اپ/blog/one?token=توکن دریافت شده

View File

@ -1,6 +1,6 @@
{
"name": "rayconnect-client",
"version": "0.11.15-wow",
"version": "0.11.16",
"description": "rayconnect client",
"main": "dist/rayconnect.js",
"types": "dist/rayconnect.d.ts",